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_IOS) 30 CreateGIFImageDecoder(); 31 #endif 32 #if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS) 33 CreatePNGImageDecoder(); 34 #endif 35 #if defined(SK_BUILD_FOR_IOS) 36 CreatePNGImageEncoder_IOS(); 37 #endif 38 return -1; 39 } 40 return 0; 41 } 42