xref: /aosp_15_r20/external/skia/bazel/buildrc (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker# This file contains the build configurations of Skia that we use for testing on the CI.
2*c8dee2aaSAndroid Build Coastguard Worker# These allow a short-form reference for our supported combinations of build features.
3*c8dee2aaSAndroid Build Coastguard Worker# https://bazel.build/docs/bazelrc#config
4*c8dee2aaSAndroid Build Coastguard Worker#
5*c8dee2aaSAndroid Build Coastguard Worker# For most build configurations, we will want to set the --cc_output_directory_tag [1]
6*c8dee2aaSAndroid Build Coastguard Worker# with a unique identifier per configuration name.
7*c8dee2aaSAndroid Build Coastguard Worker#
8*c8dee2aaSAndroid Build Coastguard Worker# By default, Bazel's "unique target BuildConfiguration" [2] incorporates the compilation_mode,
9*c8dee2aaSAndroid Build Coastguard Worker# the target platform, and some suffixes to avoid Bazel-caused and user-caused conflicts. [3] [4]
10*c8dee2aaSAndroid Build Coastguard Worker# For example, a default output directory might look like "k8-fastbuild-ST-6a54c1377847".
11*c8dee2aaSAndroid Build Coastguard Worker# Inside this output directory is a subfolder for the target (e.g. executable) name.
12*c8dee2aaSAndroid Build Coastguard Worker#
13*c8dee2aaSAndroid Build Coastguard Worker# Note that multiple definitions of a config are allowed - in this event, they are added together.
14*c8dee2aaSAndroid Build Coastguard Worker# This is handy if we need to comment on why certain settings are necessary. Otherwise, escaping
15*c8dee2aaSAndroid Build Coastguard Worker# the trailing newline (and thus having a multi-line definition) is preferred for brevity.
16*c8dee2aaSAndroid Build Coastguard Worker#
17*c8dee2aaSAndroid Build Coastguard Worker# Notably, the flags that we turn on and off via //bazel/common_config_settings do not affect
18*c8dee2aaSAndroid Build Coastguard Worker# the output directory. The output directory is used to store compiled object files (.o files)
19*c8dee2aaSAndroid Build Coastguard Worker# and generated dependency files (e.g. the output of clang --write-dependencies [5]), so having
20*c8dee2aaSAndroid Build Coastguard Worker# these be overwritten unnecessarily will slow down incremental rebuilds when switching between
21*c8dee2aaSAndroid Build Coastguard Worker# building different configurations of the same targets.
22*c8dee2aaSAndroid Build Coastguard Worker#
23*c8dee2aaSAndroid Build Coastguard Worker# [1] https://bazel.build/reference/command-line-reference#flag--cc_output_directory_tag
24*c8dee2aaSAndroid Build Coastguard Worker# [2] https://bazel.build/docs/output_directories#layout-diagram
25*c8dee2aaSAndroid Build Coastguard Worker# [3] https://github.com/bazelbuild/bazel/blob/ad37a3748c78e0ee903b56366322c70ab8b22187/CODEBASE.md#the-structure-of-the-output-directory
26*c8dee2aaSAndroid Build Coastguard Worker# [4] https://github.com/bazelbuild/bazel/blob/e0e589658463beb9605030b4820dcc97e6a36f48/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java#L198-L236
27*c8dee2aaSAndroid Build Coastguard Worker# [5] https://clang.llvm.org/docs/ClangCommandLineReference.html#dependency-file-generation
28*c8dee2aaSAndroid Build Coastguard Worker
29*c8dee2aaSAndroid Build Coastguard Worker# =============================================================================
30*c8dee2aaSAndroid Build Coastguard Worker# Targets (what to build for)
31*c8dee2aaSAndroid Build Coastguard Worker# =============================================================================
32*c8dee2aaSAndroid Build Coastguard Worker
33*c8dee2aaSAndroid Build Coastguard Worker# --platforms refers to the target for which we are compiling. By setting the target to be a
34*c8dee2aaSAndroid Build Coastguard Worker# platform which has our own custom constraint_setting and constraint_value
35*c8dee2aaSAndroid Build Coastguard Worker# (skia_hermetic_toolchain=use_hermetic_toolchain), this causes Bazel to resolve the toolchain
36*c8dee2aaSAndroid Build Coastguard Worker# to be our hermetic one because our hermetic toolchains have that same constraint set in their
37*c8dee2aaSAndroid Build Coastguard Worker# target_compatible_with list.
38*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_debug --platforms=//bazel/platform:linux_x64_hermetic \
39*c8dee2aaSAndroid Build Coastguard Worker                          --compilation_mode=dbg \
40*c8dee2aaSAndroid Build Coastguard Worker                          --cc_output_directory_tag=linux_x64_debug
41*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_release --platforms=//bazel/platform:linux_x64_hermetic \
42*c8dee2aaSAndroid Build Coastguard Worker                            --compilation_mode=opt \
43*c8dee2aaSAndroid Build Coastguard Worker                            --cc_output_directory_tag=linux_x64_release
44*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_fastbuild --platforms=//bazel/platform:linux_x64_hermetic \
45*c8dee2aaSAndroid Build Coastguard Worker                              --compilation_mode=fastbuild \
46*c8dee2aaSAndroid Build Coastguard Worker                              --cc_output_directory_tag=linux_x64_fastbuild
47*c8dee2aaSAndroid Build Coastguard Worker
48*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_debug_with_rbe --config=for_linux_x64_debug --config=linux_rbe
49*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_release_with_rbe --config=for_linux_x64_release --config=linux_rbe
50*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_fastbuild_with_rbe --config=for_linux_x64_fastbuild --config=linux_rbe
51*c8dee2aaSAndroid Build Coastguard Worker
52*c8dee2aaSAndroid Build Coastguard Worker# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
53*c8dee2aaSAndroid Build Coastguard Worker# https://bazel.build/docs/user-manual#compilation-mode).
54*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64 --config=for_linux_x64_fastbuild
55*c8dee2aaSAndroid Build Coastguard Workerbuild:for_linux_x64_with_rbe --config=for_linux_x64_fastbuild_with_rbe
56*c8dee2aaSAndroid Build Coastguard Worker
57*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_arm64_debug --platforms=//bazel/platform:mac_arm64_hermetic \
58*c8dee2aaSAndroid Build Coastguard Worker                          --compilation_mode=dbg \
59*c8dee2aaSAndroid Build Coastguard Worker                          --cc_output_directory_tag=mac_arm64_debug
60*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_arm64_release --platforms=//bazel/platform:mac_arm64_hermetic \
61*c8dee2aaSAndroid Build Coastguard Worker                            --compilation_mode=opt \
62*c8dee2aaSAndroid Build Coastguard Worker                            --cc_output_directory_tag=mac_arm64_release
63*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_arm64_fastbuild --platforms=//bazel/platform:mac_arm64_hermetic \
64*c8dee2aaSAndroid Build Coastguard Worker                              --compilation_mode=fastbuild \
65*c8dee2aaSAndroid Build Coastguard Worker                              --cc_output_directory_tag=mac_arm64_fastbuild
66*c8dee2aaSAndroid Build Coastguard Worker
67*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_x64_debug --platforms=//bazel/platform:mac_x64_hermetic \
68*c8dee2aaSAndroid Build Coastguard Worker                        --compilation_mode=dbg \
69*c8dee2aaSAndroid Build Coastguard Worker                        --cc_output_directory_tag=mac_x64_debug
70*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_x64_release --platforms=//bazel/platform:mac_x64_hermetic \
71*c8dee2aaSAndroid Build Coastguard Worker                          --compilation_mode=opt \
72*c8dee2aaSAndroid Build Coastguard Worker                          --cc_output_directory_tag=mac_x64_release
73*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_x64_fastbuild --platforms=//bazel/platform:mac_x64_hermetic \
74*c8dee2aaSAndroid Build Coastguard Worker                            --compilation_mode=fastbuild \
75*c8dee2aaSAndroid Build Coastguard Worker                            --cc_output_directory_tag=mac_x64_fastbuild
76*c8dee2aaSAndroid Build Coastguard Worker
77*c8dee2aaSAndroid Build Coastguard Workerbuild:for_windows_x64_debug --platforms=//bazel/platform:windows_x64_hermetic \
78*c8dee2aaSAndroid Build Coastguard Worker                            --compilation_mode=dbg \
79*c8dee2aaSAndroid Build Coastguard Worker                            --cc_output_directory_tag=windows_x64_debug
80*c8dee2aaSAndroid Build Coastguard Workerbuild:for_windows_x64_release --platforms=//bazel/platform:windows_x64_hermetic \
81*c8dee2aaSAndroid Build Coastguard Worker                              --compilation_mode=opt \
82*c8dee2aaSAndroid Build Coastguard Worker                              --cc_output_directory_tag=windows_x64_release
83*c8dee2aaSAndroid Build Coastguard Workerbuild:for_windows_x64_fastbuild --platforms=//bazel/platform:windows_x64_hermetic \
84*c8dee2aaSAndroid Build Coastguard Worker                                --compilation_mode=fastbuild \
85*c8dee2aaSAndroid Build Coastguard Worker                                --cc_output_directory_tag=windows_x64_fastbuild
86*c8dee2aaSAndroid Build Coastguard Worker
87*c8dee2aaSAndroid Build Coastguard Worker# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
88*c8dee2aaSAndroid Build Coastguard Worker# https://bazel.build/docs/user-manual#compilation-mode).
89*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_arm64 --config=for_mac_arm64_fastbuild
90*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_x64 --config=for_mac_x64_fastbuild
91*c8dee2aaSAndroid Build Coastguard Worker
92*c8dee2aaSAndroid Build Coastguard Worker# Some aliases using more common lingo.
93*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_m1 --config=for_mac_arm64
94*c8dee2aaSAndroid Build Coastguard Workerbuild:for_mac_intel --config=for_mac_x64
95*c8dee2aaSAndroid Build Coastguard Worker
96*c8dee2aaSAndroid Build Coastguard Worker# Android configuration for 32-bit ARM (armeabi-v7a ABI).
97*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_debug --platforms=//bazel/platform:android_arm32 \
98*c8dee2aaSAndroid Build Coastguard Worker                              --compilation_mode=dbg \
99*c8dee2aaSAndroid Build Coastguard Worker                              --cc_output_directory_tag=android_arm32_debug
100*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_release --platforms=//bazel/platform:android_arm32 \
101*c8dee2aaSAndroid Build Coastguard Worker                                --compilation_mode=opt \
102*c8dee2aaSAndroid Build Coastguard Worker                                --cc_output_directory_tag=android_arm32_release
103*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_fastbuild --platforms=//bazel/platform:android_arm32 \
104*c8dee2aaSAndroid Build Coastguard Worker                                  --compilation_mode=fastbuild \
105*c8dee2aaSAndroid Build Coastguard Worker                                  --cc_output_directory_tag=android_arm32_fastbuild
106*c8dee2aaSAndroid Build Coastguard Worker
107*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_debug_with_rbe --config=for_android_arm32_debug --config=linux_rbe
108*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_release_with_rbe --config=for_android_arm32_release --config=linux_rbe
109*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_fastbuild_with_rbe --config=for_android_arm32_fastbuild --config=linux_rbe
110*c8dee2aaSAndroid Build Coastguard Worker
111*c8dee2aaSAndroid Build Coastguard Worker# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
112*c8dee2aaSAndroid Build Coastguard Worker# https://bazel.build/docs/user-manual#compilation-mode).
113*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32 --config=for_android_arm32_fastbuild
114*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm32_with_rbe --config=for_android_arm32_fastbuild_with_rbe
115*c8dee2aaSAndroid Build Coastguard Workerbuild:android_arm32_rbe --config=for_android_arm32_fastbuild_with_rbe
116*c8dee2aaSAndroid Build Coastguard Worker
117*c8dee2aaSAndroid Build Coastguard Worker# Android configuration for 64-bit ARM (arm64-v8a ABI).
118*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_debug --platforms=//bazel/platform:android_arm64 \
119*c8dee2aaSAndroid Build Coastguard Worker                              --compilation_mode=dbg \
120*c8dee2aaSAndroid Build Coastguard Worker                              --cc_output_directory_tag=android_arm64_debug
121*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_release --platforms=//bazel/platform:android_arm64 \
122*c8dee2aaSAndroid Build Coastguard Worker                                --compilation_mode=opt \
123*c8dee2aaSAndroid Build Coastguard Worker                                --cc_output_directory_tag=android_arm64_release
124*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_fastbuild --platforms=//bazel/platform:android_arm64 \
125*c8dee2aaSAndroid Build Coastguard Worker                                  --compilation_mode=fastbuild \
126*c8dee2aaSAndroid Build Coastguard Worker                                  --cc_output_directory_tag=android_arm64_fastbuild
127*c8dee2aaSAndroid Build Coastguard Worker
128*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_debug_with_rbe --config=for_android_arm64_debug --config=linux_rbe
129*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_release_with_rbe --config=for_android_arm64_release --config=linux_rbe
130*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_fastbuild_with_rbe --config=for_android_arm64_fastbuild --config=linux_rbe
131*c8dee2aaSAndroid Build Coastguard Worker
132*c8dee2aaSAndroid Build Coastguard Worker# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
133*c8dee2aaSAndroid Build Coastguard Worker# https://bazel.build/docs/user-manual#compilation-mode).
134*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64 --config=for_android_arm64_fastbuild
135*c8dee2aaSAndroid Build Coastguard Workerbuild:for_android_arm64_with_rbe --config=for_android_arm64_fastbuild_with_rbe
136*c8dee2aaSAndroid Build Coastguard Workerbuild:android_rbe --config=for_android_arm64_fastbuild_with_rbe
137*c8dee2aaSAndroid Build Coastguard Worker
138*c8dee2aaSAndroid Build Coastguard Worker#IOS configs
139*c8dee2aaSAndroid Build Coastguard Workerbuild:for_ios --platforms=//bazel/platform:ios --compilation_mode=dbg --cc_output_directory_tag=ios_arm64_fastbuild
140*c8dee2aaSAndroid Build Coastguard Worker
141*c8dee2aaSAndroid Build Coastguard Worker# =============================================================================
142*c8dee2aaSAndroid Build Coastguard Worker# Configurations (what features we want on)
143*c8dee2aaSAndroid Build Coastguard Worker# =============================================================================
144*c8dee2aaSAndroid Build Coastguard Worker# These are examples of the syntax to create build configurations. As of May 2022, our
145*c8dee2aaSAndroid Build Coastguard Worker# Bazel configurations are still being made.
146*c8dee2aaSAndroid Build Coastguard Workerbuild:release --compilation_mode=opt
147*c8dee2aaSAndroid Build Coastguard Workerbuild:debug --compilation_mode=dbg
148*c8dee2aaSAndroid Build Coastguard Worker
149*c8dee2aaSAndroid Build Coastguard Worker# See also https://github.com/emscripten-core/emsdk/issues/984 for disabling cc_toolchain_resolution
150*c8dee2aaSAndroid Build Coastguard Workerbuild:canvaskit_full --noincompatible_enable_cc_toolchain_resolution \
151*c8dee2aaSAndroid Build Coastguard Worker                     --ck_enable_fonts --ck_enable_embedded_font \
152*c8dee2aaSAndroid Build Coastguard Worker                     \
153*c8dee2aaSAndroid Build Coastguard Worker                     --ck_enable_canvas_polyfill --ck_enable_skp_serialization --ck_enable_skottie \
154*c8dee2aaSAndroid Build Coastguard Worker                     --ck_enable_runtime_effect --ck_enable_matrix_js
155*c8dee2aaSAndroid Build Coastguard Worker
156*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_webgl2 --ck_enable_webgl
157*c8dee2aaSAndroid Build Coastguard Worker
158*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_webgl2_release --config=canvaskit_full --config=ck_webgl2 --config=release
159*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_webgl2_debug --config=canvaskit_full --config=ck_webgl2 --config=debug
160*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_cpu_release --config=canvaskit_full --config=release
161*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_cpu_debug --config=canvaskit_full --config=debug
162*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_webgl2_release_debugger --config=canvaskit_full --config=ck_webgl2 \
163*c8dee2aaSAndroid Build Coastguard Worker                                    --config=release --ck_include_debugger
164*c8dee2aaSAndroid Build Coastguard Worker# TODO(kjlubick) We should be able to configure testing on Chrome or Firefox with this.
165*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_webgl2_release_chrome --config=ck_full_webgl2_release
166*c8dee2aaSAndroid Build Coastguard Workerbuild:ck_full_cpu_release_chrome --config=ck_full_cpu_release
167*c8dee2aaSAndroid Build Coastguard Worker
168*c8dee2aaSAndroid Build Coastguard Worker# config when building //infra/debugger-app:debugger_container.
169*c8dee2aaSAndroid Build Coastguard Worker# This is invoked in a Louhi flow.
170*c8dee2aaSAndroid Build Coastguard Workerbuild:debugger_app_container --config=ck_full_webgl2_release_debugger \
171*c8dee2aaSAndroid Build Coastguard Worker                             --workspace_status_command=bazel/get_workspace_status.sh \
172*c8dee2aaSAndroid Build Coastguard Worker                             --@io_bazel_rules_docker//transitions:enable=false
173*c8dee2aaSAndroid Build Coastguard Worker
174*c8dee2aaSAndroid Build Coastguard Worker# config when building //infra/jsfiddle:jsfiddle_container.
175*c8dee2aaSAndroid Build Coastguard Worker# This is invoked in a Louhi flow.
176*c8dee2aaSAndroid Build Coastguard Workerbuild:jsfiddle_container --config=ck_full_webgl2_release \
177*c8dee2aaSAndroid Build Coastguard Worker                         --workspace_status_command=bazel/get_workspace_status.sh \
178*c8dee2aaSAndroid Build Coastguard Worker                         --@io_bazel_rules_docker//transitions:enable=false
179*c8dee2aaSAndroid Build Coastguard Worker
180*c8dee2aaSAndroid Build Coastguard Worker# config when building //infra/shaders:shaders_container.
181*c8dee2aaSAndroid Build Coastguard Worker# This is invoked in a Louhi flow.
182*c8dee2aaSAndroid Build Coastguard Workerbuild:shaders_container --config=ck_full_webgl2_release \
183*c8dee2aaSAndroid Build Coastguard Worker                        --workspace_status_command=bazel/get_workspace_status.sh \
184*c8dee2aaSAndroid Build Coastguard Worker                        --@io_bazel_rules_docker//transitions:enable=false
185*c8dee2aaSAndroid Build Coastguard Worker
186*c8dee2aaSAndroid Build Coastguard Worker# config when building //infra/skottie:skottie_container.
187*c8dee2aaSAndroid Build Coastguard Worker# This is invoked in a Louhi flow.
188*c8dee2aaSAndroid Build Coastguard Workerbuild:skottie_container --config=ck_full_webgl2_release \
189*c8dee2aaSAndroid Build Coastguard Worker                        --workspace_status_command=bazel/get_workspace_status.sh \
190*c8dee2aaSAndroid Build Coastguard Worker                        --@io_bazel_rules_docker//transitions:enable=false
191*c8dee2aaSAndroid Build Coastguard Worker
192*c8dee2aaSAndroid Build Coastguard Worker# We only want to enforce IWYU on debug builds because we have some things that are only
193*c8dee2aaSAndroid Build Coastguard Worker# necessary to include in debug mode (e.g. SkDEBUGCODE), but very rarely something that is
194*c8dee2aaSAndroid Build Coastguard Worker# only needed in release mode. Thus our C++ debug includes should be a superset of the
195*c8dee2aaSAndroid Build Coastguard Worker# release includes.
196*c8dee2aaSAndroid Build Coastguard Workerbuild:enforce_iwyu --features=skia_enforce_iwyu --cc_output_directory_tag=iwyu \
197*c8dee2aaSAndroid Build Coastguard Worker                   --compilation_mode=dbg --keep_going \
198*c8dee2aaSAndroid Build Coastguard Worker                   --linkopt="SKIA_SKIP_LINKING"
199*c8dee2aaSAndroid Build Coastguard Worker
200*c8dee2aaSAndroid Build Coastguard Workerbuild:use_linux_rbe_pool --config=linux_rbe --remote_download_minimal
201*c8dee2aaSAndroid Build Coastguard Worker
202*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu_only --cc_output_directory_tag=cpu_tests
203*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu_only_debug --config=cpu --config=debug
204*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu_only_release --config=cpu --config=release
205*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu_only_debug_rbe --config=cpu_only_debug --config=use_linux_rbe_pool
206*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu_only_release_rbe --config=cpu_only_release --config=use_linux_rbe_pool
207*c8dee2aaSAndroid Build Coastguard Worker
208*c8dee2aaSAndroid Build Coastguard Workerbuild:gl_ganesh --enable_gpu_test_utils --gpu_backend=gl_ganesh \
209*c8dee2aaSAndroid Build Coastguard Worker                 --cc_output_directory_tag=gl_ganesh
210*c8dee2aaSAndroid Build Coastguard Worker# We need to have this environment variable set when testing our Ganesh GL backend on Unix,
211*c8dee2aaSAndroid Build Coastguard Worker# otherwise, we get "Failed to open X display." and connect make a GL context for testing.
212*c8dee2aaSAndroid Build Coastguard Workerbuild:gl_ganesh --action_env=DISPLAY=:1
213*c8dee2aaSAndroid Build Coastguard Worker
214*c8dee2aaSAndroid Build Coastguard Workerbuild:vulkan_ganesh --enable_gpu_test_utils --gpu_backend=vulkan_ganesh \
215*c8dee2aaSAndroid Build Coastguard Worker                    --cc_output_directory_tag=vulkan_ganesh
216*c8dee2aaSAndroid Build Coastguard Worker
217*c8dee2aaSAndroid Build Coastguard Workerbuild:metal_ganesh --enable_gpu_test_utils --gpu_backend=metal_ganesh\
218*c8dee2aaSAndroid Build Coastguard Worker                    --cc_output_directory_tag=metal_ganesh
219*c8dee2aaSAndroid Build Coastguard Worker
220*c8dee2aaSAndroid Build Coastguard Worker# Short-hand aliases
221*c8dee2aaSAndroid Build Coastguard Workerbuild:cpu --config=cpu_only
222*c8dee2aaSAndroid Build Coastguard Workerbuild:gl --config=gl_ganesh
223*c8dee2aaSAndroid Build Coastguard Workerbuild:vk --config=vulkan_ganesh
224*c8dee2aaSAndroid Build Coastguard Worker
225*c8dee2aaSAndroid Build Coastguard Worker# We would ideally like to remove the SKSL_STANDALONE define one day,
226*c8dee2aaSAndroid Build Coastguard Worker# but it is needed by SkRasterPipelineBuilder when being compiled for GN
227*c8dee2aaSAndroid Build Coastguard Workerbuild:compile_sksl --cc_output_directory_tag=compile_sksl \
228*c8dee2aaSAndroid Build Coastguard Worker    --compilation_mode=opt --//src/core:load_sksl_from_disk --copt="-DSKSL_STANDALONE=1"
229*c8dee2aaSAndroid Build Coastguard Worker
230*c8dee2aaSAndroid Build Coastguard Worker# Layering check does not work without sandboxing because the system headers are not in the
231*c8dee2aaSAndroid Build Coastguard Worker# right spot and so they are not found.
232*c8dee2aaSAndroid Build Coastguard Workerbuild:no_sandbox --spawn_strategy=local --features=-layering_check
233