1/* 2 * Copyright 2013 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#include "SkForceLinking.h" 9#include "SkImageDecoder.h" 10 11// This method is required to fool the linker into not discarding the pre-main 12// initialization and registration of the decoder classes. Passing true will 13// cause memory leaks. 14int SkForceLinking(bool doNotPassTrue) { 15 if (doNotPassTrue) { 16 SkASSERT(false); 17 CreateJPEGImageDecoder(); 18 CreateWEBPImageDecoder(); 19 CreateBMPImageDecoder(); 20 CreateICOImageDecoder(); 21 CreateWBMPImageDecoder(); 22 // Only link hardware texture codecs on platforms that build them. See images.gyp 23#ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK 24 CreatePKMImageDecoder(); 25 CreateKTXImageDecoder(); 26 CreateASTCImageDecoder(); 27#endif 28 // Only link GIF and PNG on platforms that build them. See images.gyp 29#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_NACL) \ 30 && !defined(SK_BUILD_FOR_IOS) 31 CreateGIFImageDecoder(); 32#endif 33#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS) 34 CreatePNGImageDecoder(); 35#endif 36#if defined(SK_BUILD_FOR_IOS) 37 CreatePNGImageEncoder_IOS(); 38#endif 39 return -1; 40 } 41 return 0; 42} 43