load("//bazel:macros.bzl", "select_multi") GENERAL_DEFINES = ["SK_HAS_ANDROID_CODEC"] + select({ "//bazel/common_config_settings:debug_build": [ "SK_DEBUG", ], "//bazel/common_config_settings:release_build": [ "SK_RELEASE", ], "//conditions:default": [ "SK_RELEASE", ], }) + select({ "//bazel/common_config_settings:disable_tracing_true": ["SK_DISABLE_TRACING"], "//conditions:default": [], }) + select({ "//bazel/common_config_settings:disable_effect_serialization_true": ["SK_DISABLE_EFFECT_DESERIALIZATION"], "//conditions:default": [], }) + select({ "//bazel/common_config_settings:is_skia_dev_build_true": [ "GR_TEST_UTILS=1", "SK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1", ], "//conditions:default": [], }) GPU_DEFINES = select({ "//bazel/common_config_settings:gl_backend": [ "SK_GL", "SK_SUPPORT_GPU=1", ], "//bazel/common_config_settings:vulkan_backend": [ "SK_VULKAN", "SK_SUPPORT_GPU=1", ], "//conditions:default": [ "SK_SUPPORT_GPU=0", ], }) + select({ "//bazel/common_config_settings:gl_standard": [ "SK_ASSUME_GL=1", ], "//bazel/common_config_settings:gles_standard": [ "SK_ASSUME_GL_ES=1", ], "//bazel/common_config_settings:webgl_standard": [ "SK_ASSUME_WEBGL=1", "SK_USE_WEBGL", ], "//conditions:default": [], }) CODEC_DEFINES = select_multi( { "//bazel/common_config_settings:gif_decode_codec": ["SK_HAS_WUFFS_LIBRARY"], "//bazel/common_config_settings:jpeg_decode_codec": ["SK_CODEC_DECODES_JPEG"], "//bazel/common_config_settings:jpeg_encode_codec": ["SK_ENCODE_JPEG"], "//bazel/common_config_settings:png_decode_codec": ["SK_CODEC_DECODES_PNG"], "//bazel/common_config_settings:png_encode_codec": ["SK_ENCODE_PNG"], "//bazel/common_config_settings:raw_decode_codec": [ "SK_CODEC_DECODES_RAW", "SK_CODEC_DECODES_JPEG", ], "//bazel/common_config_settings:webp_decode_codec": ["SK_CODEC_DECODES_WEBP"], "//bazel/common_config_settings:webp_encode_codec": ["SK_ENCODE_WEBP"], }, default = [], ) PLATFORM_DEFINES = select({ "//bazel/common_config_settings:cpu_wasm": [ # working around https://github.com/emscripten-core/emscripten/issues/10072 "SK_FORCE_8_BYTE_ALIGNMENT", "SK_DISABLE_LEGACY_SHADERCONTEXT", "SK_DISABLE_AAA", # This saves about 57KB of code size, uncompressed "SK_NO_COMMAND_BUFFER", # not a feature CK needs. ], "//conditions:default": [], }) SHAPER_DEFINES = select_multi( { "//bazel/common_config_settings:coretext_shaper": ["SK_SHAPER_CORETEXT_AVAILABLE"], "//bazel/common_config_settings:harfbuzz_shaper": ["SK_SHAPER_HARFBUZZ_AVAILABLE"], }, default = [], ) UNICODE_DEFINES = select({ "//bazel/common_config_settings:use_icu_true": ["SK_UNICODE_AVAILABLE"], "//conditions:default": [], }) cc_library( name = "defines_from_flags", defines = GENERAL_DEFINES + GPU_DEFINES + CODEC_DEFINES + PLATFORM_DEFINES + SHAPER_DEFINES + UNICODE_DEFINES, visibility = ["//:__subpackages__"], )