1cb93a386Sopenharmony_ciload(":defs.bzl", "string_flag_with_values") 2cb93a386Sopenharmony_ci 3cb93a386Sopenharmony_ci# @platforms is found at https://github.com/bazelbuild/platforms 4cb93a386Sopenharmony_cipackage(default_visibility = ["//:__subpackages__"]) 5cb93a386Sopenharmony_ci 6cb93a386Sopenharmony_ciconfig_setting( 7cb93a386Sopenharmony_ci name = "linux_x64", 8cb93a386Sopenharmony_ci constraint_values = [ 9cb93a386Sopenharmony_ci "@platforms//cpu:x86_64", 10cb93a386Sopenharmony_ci "@platforms//os:linux", 11cb93a386Sopenharmony_ci ], 12cb93a386Sopenharmony_ci) 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_ciconfig_setting( 15cb93a386Sopenharmony_ci name = "windows_x64", 16cb93a386Sopenharmony_ci constraint_values = [ 17cb93a386Sopenharmony_ci "@platforms//cpu:x86_64", 18cb93a386Sopenharmony_ci "@platforms//os:windows", 19cb93a386Sopenharmony_ci ], 20cb93a386Sopenharmony_ci) 21cb93a386Sopenharmony_ci 22cb93a386Sopenharmony_ciconfig_setting( 23cb93a386Sopenharmony_ci name = "linux_arm64", 24cb93a386Sopenharmony_ci constraint_values = [ 25cb93a386Sopenharmony_ci "@platforms//cpu:arm64", 26cb93a386Sopenharmony_ci "@platforms//os:linux", 27cb93a386Sopenharmony_ci ], 28cb93a386Sopenharmony_ci) 29cb93a386Sopenharmony_ci 30cb93a386Sopenharmony_ciconfig_setting( 31cb93a386Sopenharmony_ci name = "debug_build", 32cb93a386Sopenharmony_ci values = {"compilation_mode": "dbg"}, 33cb93a386Sopenharmony_ci) 34cb93a386Sopenharmony_ci 35cb93a386Sopenharmony_ciconfig_setting( 36cb93a386Sopenharmony_ci name = "release_build", 37cb93a386Sopenharmony_ci values = {"compilation_mode": "opt"}, 38cb93a386Sopenharmony_ci) 39cb93a386Sopenharmony_ci 40cb93a386Sopenharmony_ciconstraint_value( 41cb93a386Sopenharmony_ci name = "fuchsia", 42cb93a386Sopenharmony_ci constraint_setting = "@platforms//os:os", 43cb93a386Sopenharmony_ci) 44cb93a386Sopenharmony_ci 45cb93a386Sopenharmony_ciconfig_setting( 46cb93a386Sopenharmony_ci name = "fuchsia_arm64", 47cb93a386Sopenharmony_ci constraint_values = [ 48cb93a386Sopenharmony_ci "@platforms//cpu:arm64", 49cb93a386Sopenharmony_ci ":fuchsia", 50cb93a386Sopenharmony_ci ], 51cb93a386Sopenharmony_ci) 52cb93a386Sopenharmony_ci 53cb93a386Sopenharmony_ci# We define this here because the emscripten toolchain calls the cpu wasm, whereas the 54cb93a386Sopenharmony_ci# bazelbuild/platforms call it wasm32. https://github.com/emscripten-core/emsdk/issues/919 55cb93a386Sopenharmony_ciconfig_setting( 56cb93a386Sopenharmony_ci name = "cpu_wasm", 57cb93a386Sopenharmony_ci values = { 58cb93a386Sopenharmony_ci "cpu": "wasm", 59cb93a386Sopenharmony_ci }, 60cb93a386Sopenharmony_ci) 61cb93a386Sopenharmony_ci 62cb93a386Sopenharmony_ci# ============================================================================= 63cb93a386Sopenharmony_ci# Configurable Skia Features 64cb93a386Sopenharmony_ci# ============================================================================= 65cb93a386Sopenharmony_ci# These are flags that we can specify when invoking bazel build to turn on and 66cb93a386Sopenharmony_ci# off certain features, such as GPU backend, or codec support. 67cb93a386Sopenharmony_ci# https://docs.bazel.build/versions/4.2.1/skylark/config.html#using-build-settings-on-the-command-line 68cb93a386Sopenharmony_ci# For example, to use the GL backend with the WebGL flavor, one would run 69cb93a386Sopenharmony_ci# bazel build //:skia-core --//bazel/common_config_settings:gpu_backend=gl_backend \ 70cb93a386Sopenharmony_ci# --//bazel/common_config_settings:with_gl_standard=webgl_standard 71cb93a386Sopenharmony_ci# This is a bit wordy, so we define aliases in the //.bazelrc file that condense this to 72cb93a386Sopenharmony_ci# bazel build //:skia-core --gpu_backend=gl_backend --with_gl_standard=webgl_standard 73cb93a386Sopenharmony_ci# 74cb93a386Sopenharmony_ci# Developers can specify their own short-hands by making a .bazelrc file in their home 75cb93a386Sopenharmony_ci# directory. https://docs.bazel.build/versions/main/guide.html#where-are-the-bazelrc-files 76cb93a386Sopenharmony_ci# 77cb93a386Sopenharmony_ci 78cb93a386Sopenharmony_cistring_flag_with_values( 79cb93a386Sopenharmony_ci flag_name = "gpu_backend", 80cb93a386Sopenharmony_ci multiple = True, 81cb93a386Sopenharmony_ci values = [ 82cb93a386Sopenharmony_ci "gl_backend", 83cb93a386Sopenharmony_ci "vulkan_backend", 84cb93a386Sopenharmony_ci ], 85cb93a386Sopenharmony_ci) 86cb93a386Sopenharmony_ci 87cb93a386Sopenharmony_cistring_flag_with_values( 88cb93a386Sopenharmony_ci flag_name = "with_gl_standard", 89cb93a386Sopenharmony_ci values = [ 90cb93a386Sopenharmony_ci "gles_standard", 91cb93a386Sopenharmony_ci "gl_standard", 92cb93a386Sopenharmony_ci "webgl_standard", 93cb93a386Sopenharmony_ci ], 94cb93a386Sopenharmony_ci) 95cb93a386Sopenharmony_ci 96cb93a386Sopenharmony_cistring_flag_with_values( 97cb93a386Sopenharmony_ci default = "empty_fontmgr_factory", 98cb93a386Sopenharmony_ci flag_name = "fontmgr_factory", 99cb93a386Sopenharmony_ci values = [ 100cb93a386Sopenharmony_ci "empty_fontmgr_factory", 101cb93a386Sopenharmony_ci "custom_directory_fontmgr_factory", 102cb93a386Sopenharmony_ci ], 103cb93a386Sopenharmony_ci) 104cb93a386Sopenharmony_ci 105cb93a386Sopenharmony_cistring_flag_with_values( 106cb93a386Sopenharmony_ci flag_name = "include_codec", 107cb93a386Sopenharmony_ci multiple = True, 108cb93a386Sopenharmony_ci values = [ 109cb93a386Sopenharmony_ci "gif_codec", 110cb93a386Sopenharmony_ci "jpeg_codec", 111cb93a386Sopenharmony_ci "png_codec", 112cb93a386Sopenharmony_ci "raw_codec", 113cb93a386Sopenharmony_ci "webp_codec", 114cb93a386Sopenharmony_ci ], 115cb93a386Sopenharmony_ci) 116