load("//:defines.bzl", "DEFAULT_DEFINES", "DEFAULT_LOCAL_DEFINES")
load("@skia_user_config//:copts.bzl", "DEFAULT_OBJC_COPTS")
load("//bazel:flags.bzl", "selects")
load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_library", "skia_objc_library")

licenses(["notice"])

exports_files_legacy()

# All the mm files from the Skia library are rolled up to this objc library since cc_library
# ignores mm files. This private library is then deps'ed into the public and internal versions
# of the SKia library below. The Skia library Objective-C code requires ARC, while non-library code
# does not.
skia_objc_library(
    name = "skia_objc",
    srcs = [
        "//src:objc_srcs",
    ],
    copts = DEFAULT_OBJC_COPTS + ["-fobjc-arc"],
    defines = DEFAULT_DEFINES,
    deps = [
        "//src:deps",
        "@skia_user_config//:user_config",
    ],
)

# This target exposes the Skia public API. It is what external clients should use.
skia_cc_library(
    name = "skia_public",
    srcs = [
        "//include:private_hdrs",
        "//include:srcs",
        "//src:private_hdrs",
        "//src:srcs",
    ],
    hdrs = ["//include:public_hdrs"],
    defines = DEFAULT_DEFINES,
    local_defines = DEFAULT_LOCAL_DEFINES,
    visibility = ["//visibility:public"],
    deps = [
        "//src:deps",
        "@skia_user_config//:user_config",
    ] + select({
        "//src/gpu:metal_backend": ["//:skia_objc"],
        "//conditions:default": [],
    }),
)

# This target exposes headers beyond the public, supported API. It is intended to be
# used by Skia's tests and tooling.
skia_cc_library(
    name = "skia_internal",
    srcs = [
        "//include:srcs",
        "//src:srcs",
    ],
    hdrs = [
        "//include:private_hdrs",
        "//include:public_hdrs",
        "//src:private_hdrs",
    ],
    defines = DEFAULT_DEFINES,
    local_defines = DEFAULT_LOCAL_DEFINES,
    visibility = [
        "//dm:__subpackages__",
        "//gm:__subpackages__",
        "//modules:__subpackages__",
        "//tests:__subpackages__",
        "//tools:__subpackages__",
    ],
    deps = [
        "//src:deps",
        "@skia_user_config//:user_config",
    ] + select({
        "//src/gpu:metal_backend": ["//:skia_objc"],
        "//conditions:default": [],
    }),
)

####################################################################
# Experimental public buffet targets below

alias(
    name = "core",
    actual = "//src:core",
    visibility = ["//visibility:public"],
)

alias(
    name = "pathops",
    actual = "//src:pathops",
    visibility = ["//visibility:public"],
)

alias(
    name = "default_malloc",
    actual = "//src/ports:default_malloc",
    visibility = ["//visibility:public"],
)

alias(
    name = "default_logging",
    actual = "//src/ports:default_logging",
    visibility = ["//visibility:public"],
)

# Load bearing comment below - gazelle looks here (and not in any other BUILD.bazel files)
# for a special comment indicating the prefix.
# gazelle:prefix go.skia.org/skia

# This is an alias to avoid having to load the golang toolchain code just to
# create the rules in our primary BUILD.bazel file
alias(
    name = "gazelle",
    actual = "//infra:gazelle",
    visibility = ["//visibility:public"],
)

# Convenience condition that is always true. This condition is satisfied if an arbitrarily chosen
# boolean built-in flag (https://bazel.build/docs/user-manual#stamp) is either true or false.
#
# Inspired by
# https://github.com/bazelbuild/bazel-skylib/blob/2f0bb4cec0297bb38f830a72fa8961bee057c3cd/lib/selects.bzl#L227.
selects.config_setting_group(
    name = "always_true",
    match_any = [
        ":always_true_0",
        ":always_true_1",
    ],
    visibility = ["//visibility:public"],
)

config_setting(
    name = "always_true_0",
    values = {"stamp": "0"},
)

config_setting(
    name = "always_true_1",
    values = {"stamp": "1"},
)
