# This file contains the build configurations of Skia that we use for testing on the CI.
# These allow a short-form reference for our supported combinations of build features.
# https://bazel.build/docs/bazelrc#config
#
# For most build configurations, we will want to set the --cc_output_directory_tag [1]
# with a unique identifier per configuration name.
#
# By default, Bazel's "unique target BuildConfiguration" [2] incorporates the compilation_mode,
# the target platform, and some suffixes to avoid Bazel-caused and user-caused conflicts. [3] [4]
# For example, a default output directory might look like "k8-fastbuild-ST-6a54c1377847".
# Inside this output directory is a subfolder for the target (e.g. executable) name.
#
# Note that multiple definitions of a config are allowed - in this event, they are added together.
# This is handy if we need to comment on why certain settings are necessary. Otherwise, escaping
# the trailing newline (and thus having a multi-line definition) is preferred for brevity.
#
# Notably, the flags that we turn on and off via //bazel/common_config_settings do not affect
# the output directory. The output directory is used to store compiled object files (.o files)
# and generated dependency files (e.g. the output of clang --write-dependencies [5]), so having
# these be overwritten unnecessarily will slow down incremental rebuilds when switching between
# building different configurations of the same targets.
#
# [1] https://bazel.build/reference/command-line-reference#flag--cc_output_directory_tag
# [2] https://bazel.build/docs/output_directories#layout-diagram
# [3] https://github.com/bazelbuild/bazel/blob/ad37a3748c78e0ee903b56366322c70ab8b22187/CODEBASE.md#the-structure-of-the-output-directory
# [4] https://github.com/bazelbuild/bazel/blob/e0e589658463beb9605030b4820dcc97e6a36f48/src/main/java/com/google/devtools/build/lib/analysis/config/OutputDirectories.java#L198-L236
# [5] https://clang.llvm.org/docs/ClangCommandLineReference.html#dependency-file-generation

# =============================================================================
# Targets (what to build for)
# =============================================================================

# --platforms refers to the target for which we are compiling. By setting the target to be a
# platform which has our own custom constraint_setting and constraint_value
# (skia_hermetic_toolchain=use_hermetic_toolchain), this causes Bazel to resolve the toolchain
# to be our hermetic one because our hermetic toolchains have that same constraint set in their
# target_compatible_with list.
build:for_linux_x64_debug --platforms=//bazel/platform:linux_x64_hermetic \
                          --compilation_mode=dbg \
                          --cc_output_directory_tag=linux_x64_debug
build:for_linux_x64_release --platforms=//bazel/platform:linux_x64_hermetic \
                            --compilation_mode=opt \
                            --cc_output_directory_tag=linux_x64_release
build:for_linux_x64_fastbuild --platforms=//bazel/platform:linux_x64_hermetic \
                              --compilation_mode=fastbuild \
                              --cc_output_directory_tag=linux_x64_fastbuild

build:for_linux_x64_debug_with_rbe --config=for_linux_x64_debug --config=linux_rbe
build:for_linux_x64_release_with_rbe --config=for_linux_x64_release --config=linux_rbe
build:for_linux_x64_fastbuild_with_rbe --config=for_linux_x64_fastbuild --config=linux_rbe

# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
# https://bazel.build/docs/user-manual#compilation-mode).
build:for_linux_x64 --config=for_linux_x64_fastbuild
build:for_linux_x64_with_rbe --config=for_linux_x64_fastbuild_with_rbe

build:for_mac_arm64_debug --platforms=//bazel/platform:mac_arm64_hermetic \
                          --compilation_mode=dbg \
                          --cc_output_directory_tag=mac_arm64_debug
build:for_mac_arm64_release --platforms=//bazel/platform:mac_arm64_hermetic \
                            --compilation_mode=opt \
                            --cc_output_directory_tag=mac_arm64_release
build:for_mac_arm64_fastbuild --platforms=//bazel/platform:mac_arm64_hermetic \
                              --compilation_mode=fastbuild \
                              --cc_output_directory_tag=mac_arm64_fastbuild

build:for_mac_x64_debug --platforms=//bazel/platform:mac_x64_hermetic \
                        --compilation_mode=dbg \
                        --cc_output_directory_tag=mac_x64_debug
build:for_mac_x64_release --platforms=//bazel/platform:mac_x64_hermetic \
                          --compilation_mode=opt \
                          --cc_output_directory_tag=mac_x64_release
build:for_mac_x64_fastbuild --platforms=//bazel/platform:mac_x64_hermetic \
                            --compilation_mode=fastbuild \
                            --cc_output_directory_tag=mac_x64_fastbuild

build:for_windows_x64_debug --platforms=//bazel/platform:windows_x64_hermetic \
                            --compilation_mode=dbg \
                            --cc_output_directory_tag=windows_x64_debug
build:for_windows_x64_release --platforms=//bazel/platform:windows_x64_hermetic \
                              --compilation_mode=opt \
                              --cc_output_directory_tag=windows_x64_release
build:for_windows_x64_fastbuild --platforms=//bazel/platform:windows_x64_hermetic \
                                --compilation_mode=fastbuild \
                                --cc_output_directory_tag=windows_x64_fastbuild

# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
# https://bazel.build/docs/user-manual#compilation-mode).
build:for_mac_arm64 --config=for_mac_arm64_fastbuild
build:for_mac_x64 --config=for_mac_x64_fastbuild

# Some aliases using more common lingo.
build:for_mac_m1 --config=for_mac_arm64
build:for_mac_intel --config=for_mac_x64

# Android configuration for 32-bit ARM (armeabi-v7a ABI).
build:for_android_arm32_debug --platforms=//bazel/platform:android_arm32 \
                              --compilation_mode=dbg \
                              --cc_output_directory_tag=android_arm32_debug
build:for_android_arm32_release --platforms=//bazel/platform:android_arm32 \
                                --compilation_mode=opt \
                                --cc_output_directory_tag=android_arm32_release
build:for_android_arm32_fastbuild --platforms=//bazel/platform:android_arm32 \
                                  --compilation_mode=fastbuild \
                                  --cc_output_directory_tag=android_arm32_fastbuild

build:for_android_arm32_debug_with_rbe --config=for_android_arm32_debug --config=linux_rbe
build:for_android_arm32_release_with_rbe --config=for_android_arm32_release --config=linux_rbe
build:for_android_arm32_fastbuild_with_rbe --config=for_android_arm32_fastbuild --config=linux_rbe

# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
# https://bazel.build/docs/user-manual#compilation-mode).
build:for_android_arm32 --config=for_android_arm32_fastbuild
build:for_android_arm32_with_rbe --config=for_android_arm32_fastbuild_with_rbe
build:android_arm32_rbe --config=for_android_arm32_fastbuild_with_rbe

# Android configuration for 64-bit ARM (arm64-v8a ABI).
build:for_android_arm64_debug --platforms=//bazel/platform:android_arm64 \
                              --compilation_mode=dbg \
                              --cc_output_directory_tag=android_arm64_debug
build:for_android_arm64_release --platforms=//bazel/platform:android_arm64 \
                                --compilation_mode=opt \
                                --cc_output_directory_tag=android_arm64_release
build:for_android_arm64_fastbuild --platforms=//bazel/platform:android_arm64 \
                                  --compilation_mode=fastbuild \
                                  --cc_output_directory_tag=android_arm64_fastbuild

build:for_android_arm64_debug_with_rbe --config=for_android_arm64_debug --config=linux_rbe
build:for_android_arm64_release_with_rbe --config=for_android_arm64_release --config=linux_rbe
build:for_android_arm64_fastbuild_with_rbe --config=for_android_arm64_fastbuild --config=linux_rbe

# Shorter config names defaulting to fastbuild (same default as --compilation_mode, see
# https://bazel.build/docs/user-manual#compilation-mode).
build:for_android_arm64 --config=for_android_arm64_fastbuild
build:for_android_arm64_with_rbe --config=for_android_arm64_fastbuild_with_rbe
build:android_rbe --config=for_android_arm64_fastbuild_with_rbe

#IOS configs
build:for_ios --platforms=//bazel/platform:ios --compilation_mode=dbg --cc_output_directory_tag=ios_arm64_fastbuild

# =============================================================================
# Configurations (what features we want on)
# =============================================================================
# These are examples of the syntax to create build configurations. As of May 2022, our
# Bazel configurations are still being made.
build:release --compilation_mode=opt
build:debug --compilation_mode=dbg

# See also https://github.com/emscripten-core/emsdk/issues/984 for disabling cc_toolchain_resolution
build:canvaskit_full --noincompatible_enable_cc_toolchain_resolution \
                     --ck_enable_fonts --ck_enable_embedded_font \
                     \
                     --ck_enable_canvas_polyfill --ck_enable_skp_serialization --ck_enable_skottie \
                     --ck_enable_runtime_effect --ck_enable_matrix_js \
                     --cxxopt=-w --cxxopt=-std=c++20

build:ck_webgl2 --ck_enable_webgl

build:ck_full_webgl2_release --config=canvaskit_full --config=ck_webgl2 --config=release
build:ck_full_webgl2_debug --config=canvaskit_full --config=ck_webgl2 --config=debug
build:ck_full_cpu_release --config=canvaskit_full --config=release
build:ck_full_cpu_debug --config=canvaskit_full --config=debug
build:ck_full_webgl2_release_debugger --config=canvaskit_full --config=ck_webgl2 \
                                    --config=release --ck_include_debugger
# TODO(kjlubick) We should be able to configure testing on Chrome or Firefox with this.
build:ck_full_webgl2_release_chrome --config=ck_full_webgl2_release
build:ck_full_cpu_release_chrome --config=ck_full_cpu_release

build:use_linux_rbe_pool --config=linux_rbe --remote_download_minimal

build:cpu_only --cc_output_directory_tag=cpu_tests
build:cpu_only_debug --config=cpu --config=debug
build:cpu_only_release --config=cpu --config=release
build:cpu_only_debug_rbe --config=cpu_only_debug --config=use_linux_rbe_pool
build:cpu_only_release_rbe --config=cpu_only_release --config=use_linux_rbe_pool

build:gl_ganesh --enable_gpu_test_utils --gpu_backend=gl_ganesh \
                 --cc_output_directory_tag=gl_ganesh
# We need to have this environment variable set when testing our Ganesh GL backend on Unix,
# otherwise, we get "Failed to open X display." and connect make a GL context for testing.
build:gl_ganesh --action_env=DISPLAY=:1

build:vulkan_ganesh --enable_gpu_test_utils --gpu_backend=vulkan_ganesh \
                    --cc_output_directory_tag=vulkan_ganesh

build:metal_ganesh --enable_gpu_test_utils --gpu_backend=metal_ganesh\
                    --cc_output_directory_tag=metal_ganesh

# Short-hand aliases
build:cpu --config=cpu_only
build:gl --config=gl_ganesh
build:vk --config=vulkan_ganesh

# We would ideally like to remove the SKSL_STANDALONE define one day,
# but it is needed by SkRasterPipelineBuilder when being compiled for GN
build:compile_sksl --cc_output_directory_tag=compile_sksl \
    --compilation_mode=opt --//src/core:load_sksl_from_disk --copt="-DSKSL_STANDALONE=1" \
