load(":defs.bzl", "bool_flag", "string_flag_with_values")

# @platforms is found at https://github.com/bazelbuild/platforms
package(default_visibility = ["//:__subpackages__"])

config_setting(
    name = "linux_x64",
    constraint_values = [
        "@platforms//cpu:x86_64",
        "@platforms//os:linux",
    ],
)

config_setting(
    name = "windows_x64",
    constraint_values = [
        "@platforms//cpu:x86_64",
        "@platforms//os:windows",
    ],
)

config_setting(
    name = "linux_arm64",
    constraint_values = [
        "@platforms//cpu:arm64",
        "@platforms//os:linux",
    ],
)

config_setting(
    name = "debug_build",
    values = {"compilation_mode": "dbg"},
)

config_setting(
    name = "release_build",
    values = {"compilation_mode": "opt"},
)

constraint_value(
    name = "fuchsia",
    constraint_setting = "@platforms//os:os",
)

config_setting(
    name = "fuchsia_arm64",
    constraint_values = [
        "@platforms//cpu:arm64",
        ":fuchsia",
    ],
)

# We define this here because the emscripten toolchain calls the cpu wasm, whereas the
# bazelbuild/platforms call it wasm32. https://github.com/emscripten-core/emsdk/issues/919
config_setting(
    name = "cpu_wasm",
    values = {
        "cpu": "wasm",
    },
)

# =============================================================================
#                     Configurable Skia Features
# =============================================================================
# These are flags that we can specify when invoking bazel build to turn on and
# off certain features, such as GPU backend, or codec support.
# https://docs.bazel.build/versions/4.2.1/skylark/config.html#using-build-settings-on-the-command-line
# For example, to use the GL backend with the WebGL flavor, one would run
# bazel build //:skia-core --//bazel/common_config_settings:gpu_backend=gl_backend \
#             --//bazel/common_config_settings:with_gl_standard=webgl_standard
# This is a bit wordy, so we define aliases in the //.bazelrc file that condense this to
# bazel build //:skia-core --gpu_backend=gl_backend --with_gl_standard=webgl_standard
#
# Developers can specify their own short-hands by making a .bazelrc file in their home
# directory. https://docs.bazel.build/versions/main/guide.html#where-are-the-bazelrc-files
#

string_flag_with_values(
    flag_name = "gpu_backend",
    multiple = True,
    values = [
        "gl_backend",
        "vulkan_backend",
    ],
)

string_flag_with_values(
    flag_name = "with_gl_standard",
    values = [
        "gles_standard",
        "gl_standard",
        "webgl_standard",
    ],
)

string_flag_with_values(
    default = "empty_fontmgr_factory",
    flag_name = "fontmgr_factory",
    values = [
        # Makes the default SkFontMgr load fonts from a hard-coded directory on disk.
        "custom_directory_fontmgr_factory",
        # Makes the default SkFontMgr load fonts from an SkEmbeddedResource that has been compiled
        # into the binary, e.g. with //tools/embed_resources.py
        "custom_embedded_fontmgr_factory",
        # Makes the default SkFontMgr return empty fonts (e.g. SkTypeface_Empty). This is typically
        # used when someone wants to make their own custom SkFontMgr objects, but does not want the
        # default SkFontMgr to do anything (e.g. force usage of the custom one).
        "custom_empty_fontmgr_factory",
        # Makes the default SkFontMgr return null. Typically used when font support is not desired.
        "empty_fontmgr_factory",
    ],
)

# These flags need only be set if additional functionality beyond the fontmgr_factory flag is
# required. For example, the setting fontmgr_factory to custom_embedded_fontmgr_factory does not
# require setting include_fontmgr to custom_embedded_fontmgr, because those sources and settings
# will already be compiled in due to the _factory flag.
string_flag_with_values(
    flag_name = "include_fontmgr",
    multiple = True,
    values = [
        # Allows the construction of an SkFontMgr that loads files from a programmatically
        # defined directory on disk.
        "custom_directory_fontmgr",
        # Allows the construction of an SkFontMgr which can load fonts from an SkEmbeddedResource
        # or from another source of raw bytes.
        "custom_embedded_fontmgr",
        # Allows the construction of an SkFontMgr which returns empty fonts.
        "custom_empty_fontmgr",
    ],
)

string_flag_with_values(
    flag_name = "include_decoder",
    multiple = True,
    values = [
        "gif_decode_codec",
        "jpeg_decode_codec",
        "png_decode_codec",
        "raw_decode_codec",
        "webp_decode_codec",
    ],
)

string_flag_with_values(
    flag_name = "include_encoder",
    multiple = True,
    values = [
        "jpeg_encode_codec",
        "png_encode_codec",
        "webp_encode_codec",
    ],
)

string_flag_with_values(
    flag_name = "shaper_backend",
    multiple = True,
    values = [
        "harfbuzz_shaper",
        "coretext_shaper",
    ],
)

bool_flag(
    default = False,
    flag_name = "use_icu",
)
