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