load("//bazel:macros.bzl", "bool_flag", "selects", "string_flag_with_values")

licenses(["notice"])

# @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",
    ],
)

# Apple devices with intel processors released before the shift to the M1 chip
# will use this config setting.
config_setting(
    name = "mac_x64",
    constraint_values = [
        "@platforms//cpu:x86_64",
        "@platforms//os:macos",
    ],
)

# M1 Macs (and later) will use this setting.
config_setting(
    name = "mac_arm64",
    constraint_values = [
        "@platforms//cpu:arm64",
        "@platforms//os:macos",
    ],
)

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 = "fast_build",
    values = {"compilation_mode": "fastbuild"},
)

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",
    },
)

selects.config_setting_group(
    name = "release_build_mac",
    match_all = [
        "@platforms//os:macos",
        ":release_build",
    ],
    visibility = ["//:__subpackages__"],
)

selects.config_setting_group(
    name = "release_build_linux",
    match_all = [
        "@platforms//os:linux",
        ":release_build",
    ],
    visibility = ["//:__subpackages__"],
)

selects.config_setting_group(
    name = "fast_build_mac",
    match_all = [
        "@platforms//os:macos",
        ":fast_build",
    ],
    visibility = ["//:__subpackages__"],
)

selects.config_setting_group(
    name = "fast_build_linux",
    match_all = [
        "@platforms//os:linux",
        ":fast_build",
    ],
    visibility = ["//:__subpackages__"],
)

# =============================================================================
#                     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://bazel.build/rules/config#defining-build-settings
# For example, to enable harfbuzz and icu, one would run
# bazel build //:skia-core --//bazel/common_config_settings:use_harfbuzz \
#             --//bazel/common_config_settings:use_icu
# This is a bit wordy, so we define aliases in the //.bazelrc file that condense this to
# bazel build //:skia-core --with_harfbuzz --with_icu
#
# Developers can specify their own short-hands by making a .bazelrc file in their home
# directory. https://bazel.build/docs/bazelrc#bazelrc-file-locations
#
# We check in some Bazel configs for "blessed builds" in //bazel/buildrc.
#
# We can also define flags closer to where they have the most impact. For example
# //src/pdf:enable_pdf_backend.

string_flag_with_values(
    name = "fontmgr_factory",
    default = "empty_fontmgr_factory",
    values = [
        "android_fontmgr_factory",
        # 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",
        "fontconfig_fontmgr_factory",
        # Deprecated, do not use.
        "fci_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(
    name = "include_fontmgr",
    multiple = True,
    values = [
        "android_fontmgr",
        # 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",
        "fontconfig_fontmgr",
        # Deprecated, do not use.
        "fci_fontmgr",
    ],
)

bool_flag(
    # This is necessary because Bazel provides no way to compile header files on their own
    name = "compile_generated_cpp_files_for_headers",
    default = False,
)

bool_flag(
    name = "enable_effect_serialization",
    default = True,
)

bool_flag(
    name = "enable_tracing",
    # See SkTraceEventCommon.h for more on this type of tracing.
    default = True,
)

bool_flag(
    name = "use_harfbuzz",
    default = False,
)

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

# These are some helpers to mean "either the fontmgr was enabled or its factory was"

selects.config_setting_group(
    name = "uses_android_fontmgr",
    match_any = [
        ":android_fontmgr",
        ":android_fontmgr_factory",
    ],
)

selects.config_setting_group(
    name = "uses_custom_directory_fontmgr",
    match_any = [
        ":custom_directory_fontmgr",
        ":custom_directory_fontmgr_factory",
    ],
)

selects.config_setting_group(
    name = "uses_custom_embedded_fontmgr",
    match_any = [
        ":custom_embedded_fontmgr",
        ":custom_embedded_fontmgr_factory",
    ],
)

selects.config_setting_group(
    name = "uses_custom_empty_fontmgr",
    match_any = [
        ":custom_empty_fontmgr",
        ":custom_empty_fontmgr_factory",
    ],
)

selects.config_setting_group(
    name = "uses_fontconfig_fontmgr",
    match_any = [
        ":fontconfig_fontmgr",
        ":fontconfig_fontmgr_factory",
    ],
)

selects.config_setting_group(
    name = "uses_fci_fontmgr",
    match_any = [
        ":fci_fontmgr",
        ":fci_fontmgr_factory",
    ],
)
