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