load("//bazel:macros.bzl", "cc_library", "exports_files_legacy", "select_multi")

licenses(["notice"])

exports_files_legacy()

GENERAL_DEFINES = [
    # The following comment is load-bearing. It will be replace via regex when we build for Google3
    # Do not remove it or we won't be able to properly define SK_BUILD_FOR_GOOGLE3
    # REPLACE_WHEN_BUILDING_IN_GOOGLE3
    "SK_HAS_ANDROID_CODEC",
    "SKIA_IMPLEMENTATION=1",
] + 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:enable_tracing_false": ["SK_DISABLE_TRACING"],
    "//conditions:default": [],
}) + select({
    "//bazel/common_config_settings:enable_effect_serialization_false": ["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": [],
}) + select({
    "//bazel/common_config_settings:enable_skslc_true": [
        "SKSL_STANDALONE",
        "SK_DISABLE_TRACING",
        "SK_ENABLE_SPIRV_CROSS",
        "SK_ENABLE_SPIRV_VALIDATION",
        "SK_ENABLE_WGSL_VALIDATION",
    ],
    "//conditions:default": [],
}) + select({
    "//bazel/common_config_settings:enable_sksl_tracing_true": [
        "SKSL_ENABLE_TRACING",
    ],
    "//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",
    ],
    "//bazel/common_config_settings:dawn_backend": [
        "SK_DAWN",
        "SK_SUPPORT_GPU=1",
        "VK_USE_PLATFORM_XCB_KHR",  # TODO(kjlubick) support dawn's dawn_enable_vulkan etc
    ],
    "//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": [],
}) + select({
    "//bazel/common_config_settings:vulkan_with_vma": [
        "SK_USE_VMA",
    ],
    "//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
    ],
    "//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__"],
)
