blob: e342760ee6f7554825467cd79f4655da1ddabc1b [file] [log] [blame]
# SkCMS-specific configs
build:clang --action_env=CC=clang
build:clang --action_env=CXX=clang++
build:asan --copt -fsanitize=address
build:asan --linkopt -fsanitize=address
build:msan --config=clang
build:msan --copt -fsanitize=memory
build:msan --linkopt -fsanitize=memory
# This sets various variables used to stamp Docker container images.
build --workspace_status_command=bazel/get_workspace_status.sh
# Depending on how many machines are in the remote execution instance, setting
# this higher can make builds faster by allowing more jobs to run in parallel.
# Setting it too high can result in jobs that timeout, however, while waiting
# for a remote machine to execute them.
build:remote --jobs=50
# Set several flags related to specifying the platform, toolchain and java
# properties.
# These flags should only be used as is for the rbe-ubuntu16-04 container
# and need to be adapted to work with other toolchain containers.
#build:remote --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
#build:remote --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
# Starting with Bazel 0.27.0 strategies do not need to be explicitly
# defined. See https://github.com/bazelbuild/bazel/issues/7480
build:remote --define=EXECUTOR=remote
# Enable remote execution so actions are performed on the remote systems.
build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com
# Enforce stricter environment rules, which eliminates some non-hermetic
# behavior and therefore improves both the remote cache hit rate and the
# correctness and repeatability of the build.
build:remote --incompatible_strict_action_env=true
# Set a higher timeout value, just in case.
build:remote --remote_timeout=3600
# Use the RBE instance from the skia-rbe GCP project.
build:remote --remote_instance_name=projects/skia-rbe/instances/default_instance
# Linux RBE configuration.
build:linux-rbe --config=remote
build:linux-rbe --crosstool_top=@rbe_linux_toolchains//cc:toolchain
build:linux-rbe --extra_toolchains=@rbe_linux_toolchains//config:cc-toolchain
build:linux-rbe --extra_execution_platforms=@rbe_linux_toolchains//config:platform
build:linux-rbe --host_platform=@rbe_linux_toolchains//config:platform
build:linux-rbe --platforms=@rbe_linux_toolchains//config:platform
# Windows RBE configuration.
build:windows-rbe --config=remote
build:windows-rbe --crosstool_top=@rbe_windows_toolchains//cc:toolchain
build:windows-rbe --extra_toolchains=@rbe_windows_toolchains//config:cc-toolchain
build:windows-rbe --extra_execution_platforms=@rbe_windows_toolchains//config:platform
build:windows-rbe --host_platform=@rbe_windows_toolchains//config:platform
build:windows-rbe --platforms=@rbe_windows_toolchains//config:platform
# Note: All Android configurations require the ANDROID_NDK_HOME environment variable to point to a
# local copy of the Android NDK.
#
# For RBE builds, a local NDK is still needed because the list of input files of some C/C++ build
# actions contains NDK source files, which Bazel pulls from the local NDK. See http://b/195294181.
#
# Warning: Currently, the most recent NDK version supported by Bazel (version 4.2.1 at the time of
# writing) is r21e (https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip).
# Make sure your local NDK is r21e or older. See:
# - https://github.com/bazelbuild/bazel/blob/286fb80081db0af43b1f86292ce417c6541d4ad4/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/AndroidNdkCrosstools.java#L39-L59
# - https://github.com/google/mediapipe/issues/1281
# Android configuration for 32-bit ARM (armeabi-v7a ABI).
build:android-arm --crosstool_top=@androidndk//:default_crosstool
build:android-arm --cpu=armeabi-v7a
build:android-arm --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
# Android RBE configuration for 32-bit ARM (armeabi-v7a ABI).
build:android-arm-rbe --config=remote
build:android-arm-rbe --config=android-arm
build:android-arm-rbe --extra_toolchains=@rbe_linux_toolchains//config:cc-toolchain
build:android-arm-rbe --extra_execution_platforms=@rbe_linux_toolchains//config:platform
build:android-arm-rbe --platforms=@rbe_linux_toolchains//config:platform
# Android configuration for 64-bit ARM (arm64-v8a ABI).
build:android-arm64 --crosstool_top=@androidndk//:default_crosstool
build:android-arm64 --cpu=arm64-v8a
build:android-arm64 --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
# Android RBE configuration for 64-bit ARM (arm64-v8a ABI).
build:android-arm64-rbe --config=remote
build:android-arm64-rbe --config=android-arm64
build:android-arm64-rbe --extra_toolchains=@rbe_linux_toolchains//config:cc-toolchain
build:android-arm64-rbe --extra_execution_platforms=@rbe_linux_toolchains//config:platform
build:android-arm64-rbe --platforms=@rbe_linux_toolchains//config:platform
# The experimental Android configurations below use a hermetic toolchain that does not require a
# local copy of the Android NDK.
# Experimental hermetic Android configuration for 32-bit ARM (armeabi-v7a ABI).
build:android-arm-hermetic --crosstool_top=//toolchain:ndk_toolchain
build:android-arm-hermetic --cpu=armeabi-v7a
build:android-arm-hermetic --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
# Experimental hermetic Android RBE configuration for 32-bit ARM (armeabi-v7a ABI).
build:android-arm-hermetic-rbe --config=remote
build:android-arm-hermetic-rbe --config=android-arm-hermetic
build:android-arm-hermetic-rbe --extra_toolchains=@rbe_linux_toolchains//config:cc-toolchain
build:android-arm-hermetic-rbe --extra_execution_platforms=@rbe_linux_toolchains//config:platform
build:android-arm-hermetic-rbe --platforms=@rbe_linux_toolchains//config:platform
# Experimental hermetic Android configuration for 64-bit ARM (arm64-v8a ABI).
build:android-arm64-hermetic --crosstool_top=//toolchain:ndk_toolchain
build:android-arm64-hermetic --cpu=arm64-v8a
build:android-arm64-hermetic --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
# Experimental hermetic Android RBE configuration for 64-bit ARM (arm64-v8a ABI).
build:android-arm64-hermetic-rbe --config=remote
build:android-arm64-hermetic-rbe --config=android-arm64-hermetic
build:android-arm64-hermetic-rbe --extra_toolchains=@rbe_linux_toolchains//config:cc-toolchain
build:android-arm64-hermetic-rbe --extra_execution_platforms=@rbe_linux_toolchains//config:platform
build:android-arm64-hermetic-rbe --platforms=@rbe_linux_toolchains//config:platform