1load("//bazel:macros.bzl", "select_multi") 2 3GENERAL_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ 4 "//bazel/common_config_settings:debug_build": [ 5 "SK_DEBUG", 6 ], 7 "//bazel/common_config_settings:release_build": [ 8 "SK_RELEASE", 9 ], 10 "//conditions:default": [ 11 "SK_RELEASE", 12 ], 13}) + select({ 14 "//bazel/common_config_settings:disable_tracing_true": ["SK_DISABLE_TRACING"], 15 "//conditions:default": [], 16}) + select({ 17 "//bazel/common_config_settings:disable_effect_serialization_true": ["SK_DISABLE_EFFECT_DESERIALIZATION"], 18 "//conditions:default": [], 19}) + select({ 20 "//bazel/common_config_settings:is_skia_dev_build_true": [ 21 "GR_TEST_UTILS=1", 22 "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1", 23 ], 24 "//conditions:default": [], 25}) 26 27GPU_DEFINES = select({ 28 "//bazel/common_config_settings:gl_backend": [ 29 "SK_GL", 30 "SK_SUPPORT_GPU=1", 31 ], 32 "//bazel/common_config_settings:vulkan_backend": [ 33 "SK_VULKAN", 34 "SK_SUPPORT_GPU=1", 35 ], 36 "//conditions:default": [ 37 "SK_SUPPORT_GPU=0", 38 ], 39}) + select({ 40 "//bazel/common_config_settings:gl_standard": [ 41 "SK_ASSUME_GL=1", 42 ], 43 "//bazel/common_config_settings:gles_standard": [ 44 "SK_ASSUME_GL_ES=1", 45 ], 46 "//bazel/common_config_settings:webgl_standard": [ 47 "SK_ASSUME_WEBGL=1", 48 "SK_USE_WEBGL", 49 ], 50 "//conditions:default": [], 51}) 52 53CODEC_DEFINES = select_multi( 54 { 55 "//bazel/common_config_settings:gif_decode_codec": ["SK_HAS_WUFFS_LIBRARY"], 56 "//bazel/common_config_settings:jpeg_decode_codec": ["SK_CODEC_DECODES_JPEG"], 57 "//bazel/common_config_settings:jpeg_encode_codec": ["SK_ENCODE_JPEG"], 58 "//bazel/common_config_settings:png_decode_codec": ["SK_CODEC_DECODES_PNG"], 59 "//bazel/common_config_settings:png_encode_codec": ["SK_ENCODE_PNG"], 60 "//bazel/common_config_settings:raw_decode_codec": [ 61 "SK_CODEC_DECODES_RAW", 62 "SK_CODEC_DECODES_JPEG", 63 ], 64 "//bazel/common_config_settings:webp_decode_codec": ["SK_CODEC_DECODES_WEBP"], 65 "//bazel/common_config_settings:webp_encode_codec": ["SK_ENCODE_WEBP"], 66 }, 67 default = [], 68) 69 70PLATFORM_DEFINES = select({ 71 "//bazel/common_config_settings:cpu_wasm": [ 72 # working around https://github.com/emscripten-core/emscripten/issues/10072 73 "SK_FORCE_8_BYTE_ALIGNMENT", 74 "SK_DISABLE_LEGACY_SHADERCONTEXT", 75 "SK_DISABLE_AAA", # This saves about 57KB of code size, uncompressed 76 "SK_NO_COMMAND_BUFFER", # not a feature CK needs. 77 ], 78 "//conditions:default": [], 79}) 80 81SHAPER_DEFINES = select_multi( 82 { 83 "//bazel/common_config_settings:coretext_shaper": ["SK_SHAPER_CORETEXT_AVAILABLE"], 84 "//bazel/common_config_settings:harfbuzz_shaper": ["SK_SHAPER_HARFBUZZ_AVAILABLE"], 85 }, 86 default = [], 87) 88 89UNICODE_DEFINES = select({ 90 "//bazel/common_config_settings:use_icu_true": ["SK_UNICODE_AVAILABLE"], 91 "//conditions:default": [], 92}) 93 94cc_library( 95 name = "defines_from_flags", 96 defines = GENERAL_DEFINES + GPU_DEFINES + CODEC_DEFINES + PLATFORM_DEFINES + 97 SHAPER_DEFINES + UNICODE_DEFINES, 98 visibility = ["//:__subpackages__"], 99) 100