d459e5c70f
This reverts commit 02986aed2a
.
Reason for revert: Android roll
Original change's description:
> [bazel] Unify boolean flags to be enable*
>
> I think they read better when it is enable_foo. I have to
> do less double-negation in my head if they are set to false
> then.
>
> Change-Id: I53bc5575c11d489029904965d991abc5a9d0fd89
> Bug: skia:12541
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528838
> Reviewed-by: Ben Wagner <bungeman@google.com>
Bug: skia:12541
Change-Id: I63f827c41ddc8a149cd190179ad099ff8671579a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529128
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
220 lines
5.9 KiB
Python
220 lines
5.9 KiB
Python
load(":defs.bzl", "bool_flag", "string_flag_with_values")
|
|
|
|
# https://github.com/bazelbuild/bazel-skylib
|
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
|
|
# @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",
|
|
},
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "has_gpu_backend",
|
|
match_any = [
|
|
":gl_backend",
|
|
":dawn_backend",
|
|
":vulkan_backend",
|
|
],
|
|
)
|
|
|
|
selects.config_setting_group(
|
|
name = "vulkan_with_vma",
|
|
match_all = [
|
|
":vulkan_backend",
|
|
":use_vulkan_memory_allocator_true",
|
|
],
|
|
)
|
|
|
|
# =============================================================================
|
|
# 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",
|
|
"dawn_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",
|
|
)
|
|
|
|
bool_flag(
|
|
default = False,
|
|
flag_name = "disable_tracing",
|
|
)
|
|
|
|
bool_flag(
|
|
default = False,
|
|
flag_name = "disable_effect_serialization",
|
|
)
|
|
|
|
bool_flag(
|
|
default = False,
|
|
flag_name = "enable_skslc",
|
|
)
|
|
|
|
bool_flag(
|
|
default = False,
|
|
flag_name = "enable_sksl_tracing",
|
|
)
|
|
|
|
bool_flag(
|
|
default = False,
|
|
flag_name = "is_skia_dev_build",
|
|
)
|
|
|
|
bool_flag(
|
|
default = True,
|
|
flag_name = "use_vulkan_memory_allocator",
|
|
public = False, # Users should use :vulkan_with_vma
|
|
)
|