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. SkForceLinking(bool doNotPassTrue)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