• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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