# This file is empty and is only used to trick GYP.
remove_srcs (../src/core/SkForceCPlusPlusLinking.cpp)
-# This file forces linking for all our supported image decoders. We're more fine-grained.
-remove_srcs (../src/images/SkForceLinking.cpp)
# Chrome only?
remove_srcs (../src/ports/SkFontHost_fontconfig.cpp
../src/fonts/SkFontMgr_fontconfig.cpp
if (GIF_FOUND)
list (APPEND private_includes ${GIF_INCLUDE_DIRS})
list (APPEND libs ${GIF_LIBRARIES})
- add_definitions(-DSK_CODEC_DECODES_GIF)
+ add_definitions(-DSK_HAS_GIF_LIBRARY)
else()
remove_srcs(../src/images/*GIF*)
remove_srcs(../src/codec/*Gif*)
if (JPEG_FOUND)
list (APPEND private_includes ${JPEG_INCLUDE_DIRS})
list (APPEND libs ${JPEG_LIBRARIES})
- add_definitions(-DSK_CODEC_DECODES_JPEG)
+ add_definitions(-DSK_HAS_JPEG_LIBRARY)
else()
remove_srcs(../src/images/*JPEG*)
remove_srcs(../src/codec/*Jpeg*)
list (APPEND libs ${PNG_LIBRARIES})
add_definitions(-DPNG_SKIP_SETJMP_CHECK)
add_definitions(-DPNG_SKIP_SKIA_OPTS)
- add_definitions(-DSK_CODEC_DECODES_PNG)
+ add_definitions(-DSK_HAS_PNG_LIBRARY)
else()
remove_srcs(../src/images/*PNG*)
remove_srcs(../src/codec/*Png*)
if (WEBP_INCLUDE_DIRS AND WEBP_LIBRARIES)
list (APPEND private_includes ${WEBP_INCLUDE_DIRS})
list (APPEND libs ${WEBP_LIBRARIES})
- add_definitions(-DSK_CODEC_DECODES_WEBP)
+ add_definitions(-DSK_HAS_WEBP_LIBRARY)
else()
remove_srcs(../src/images/*WEBP*)
remove_srcs(../src/codec/*Webp*)
],
},
'defines': [
- # Turn on all of the codecs, since we know that we have all of the
- # necessary dependencies. Clients that are missing some of the
- # required decoding libraries may choose to turn the codecs on or
- # off individually.
- 'SK_CODEC_DECODES_GIF',
- 'SK_CODEC_DECODES_JPEG',
- 'SK_CODEC_DECODES_PNG',
- 'SK_CODEC_DECODES_WEBP',
-
# Turn on libjpeg-turbo optimizations since we know that the
# appropriate version of libjpeg-turbo is present.
'TURBO_HAS_CROP',
'SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=<(skia_static_initializers)',
'SK_SUPPORT_GPU=<(skia_gpu)',
'SK_FORCE_DISTANCE_FIELD_TEXT=<(skia_force_distance_field_text)',
+
+ # Indicate that all dependency libraries are present. Clients that
+ # are missing some of the required decoding libraries may choose
+ # not to define these. This will disable some decoder and encoder
+ # features.
+ 'SK_HAS_GIF_LIBRARY',
+ 'SK_HAS_JPEG_LIBRARY',
+ 'SK_HAS_PNG_LIBRARY',
+ 'SK_HAS_WEBP_LIBRARY',
],
'conditions' : [
[ 'skia_is_bot', {
"SK_BUILD_FOR_UNIX",
"SK_SAMPLES_FOR_X",
"SK_SFNTLY_SUBSETTER",
- "SK_CODEC_DECODES_GIF",
- "SK_CODEC_DECODES_JPEG",
- "SK_CODEC_DECODES_PNG",
"SK_CODEC_DECODES_RAW",
- "SK_CODEC_DECODES_WEBP",
+ "SK_HAS_GIF_LIBRARY",
+ "SK_HAS_JPEG_LIBRARY",
+ "SK_HAS_PNG_LIBRARY",
+ "SK_HAS_WEBP_LIBRARY",
]
DEFINES_ANDROID = [
"SK_BUILD_FOR_ANDROID",
- "SK_CODEC_DECODES_GIF",
- "SK_CODEC_DECODES_JPEG",
- "SK_CODEC_DECODES_PNG",
"SK_CODEC_DECODES_RAW",
- "SK_CODEC_DECODES_WEBP",
+ "SK_HAS_GIF_LIBRARY",
+ "SK_HAS_JPEG_LIBRARY",
+ "SK_HAS_PNG_LIBRARY",
+ "SK_HAS_WEBP_LIBRARY",
]
DEFINES_IOS = [
}
switch (codec->getEncodedFormat()) {
-#ifdef SK_CODEC_DECODES_PNG
+#ifdef SK_HAS_PNG_LIBRARY
case kPNG_SkEncodedFormat:
case kICO_SkEncodedFormat:
#endif
-#ifdef SK_CODEC_DECODES_JPEG
+#ifdef SK_HAS_JPEG_LIBRARY
case kJPEG_SkEncodedFormat:
#endif
-#ifdef SK_CODEC_DECODES_GIF
+#ifdef SK_HAS_GIF_LIBRARY
case kGIF_SkEncodedFormat:
#endif
case kBMP_SkEncodedFormat:
case kWBMP_SkEncodedFormat:
return new SkSampledCodec(codec.release());
-#ifdef SK_CODEC_DECODES_WEBP
+#ifdef SK_HAS_WEBP_LIBRARY
case kWEBP_SkEncodedFormat:
return new SkWebpAdapterCodec((SkWebpCodec*) codec.release());
#endif
#include "SkGifCodec.h"
#include "SkIcoCodec.h"
#include "SkJpegCodec.h"
-#ifdef SK_CODEC_DECODES_PNG
+#ifdef SK_HAS_PNG_LIBRARY
#include "SkPngCodec.h"
#endif
#include "SkRawCodec.h"
};
static const DecoderProc gDecoderProcs[] = {
-#ifdef SK_CODEC_DECODES_JPEG
+#ifdef SK_HAS_JPEG_LIBRARY
{ SkJpegCodec::IsJpeg, SkJpegCodec::NewFromStream },
#endif
-#ifdef SK_CODEC_DECODES_WEBP
+#ifdef SK_HAS_WEBP_LIBRARY
{ SkWebpCodec::IsWebp, SkWebpCodec::NewFromStream },
#endif
-#ifdef SK_CODEC_DECODES_GIF
+#ifdef SK_HAS_GIF_LIBRARY
{ SkGifCodec::IsGif, SkGifCodec::NewFromStream },
#endif
-#ifdef SK_CODEC_DECODES_PNG
+#ifdef SK_HAS_PNG_LIBRARY
{ SkIcoCodec::IsIco, SkIcoCodec::NewFromStream },
#endif
{ SkBmpCodec::IsBmp, SkBmpCodec::NewFromStream },
// PNG is special, since we want to be able to supply an SkPngChunkReader.
// But this code follows the same pattern as the loop.
-#ifdef SK_CODEC_DECODES_PNG
+#ifdef SK_HAS_PNG_LIBRARY
if (SkPngCodec::IsPng(buffer, bytesRead)) {
return SkPngCodec::NewFromStream(streamDeleter.release(), chunkReader);
} else
int SkForceLinking(bool doNotPassTrue) {
if (doNotPassTrue) {
SkASSERT(false);
+#if defined(SK_HAS_JPEG_LIBRARY)
CreateJPEGImageEncoder();
+#endif
+#if defined(SK_HAS_WEBP_LIBRARY)
CreateWEBPImageEncoder();
+#endif
// Only link hardware texture codecs on platforms that build them. See images.gyp
#ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
CreateKTXImageEncoder();
#endif
-#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS)
+#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS) && \
+ defined(SK_HAS_PNG_LIBRARY)
CreatePNGImageEncoder();
#endif
#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)