| # Options applied to all Bazel invocations in the workspace. |
| # This file is copied to //tools/bazel.rc from |
| # //tools/base/bazel/toplevel.bazel.rc by repo init. |
| |
| # Remote Build Execution requires a strong hash function, such as SHA256. |
| startup --host_jvm_args=-Dbazel.DigestFunction=SHA256 |
| |
| # Enforces UTF-8 encoding in bazel tests. |
| test --test_env='LC_ALL=en_US.UTF-8' |
| test --jvmopt='-Dsun.jnu.encoding=UTF-8' |
| test --jvmopt='-Dfile.encoding=UTF-8' |
| test --jvmopt='-Xmx4G' |
| test --jvmopt='-XX:+UseConcMarkSweepGC' |
| test --test_output=errors |
| test --verbose_failures |
| |
| # Local runs require longer timeouts. |
| test:local --test_timeout=120,600,1800,7200 |
| |
| # Test results caching is on by default. This is here so we have a presubmit |
| # config as bazel rules can use the config to determine presubmit invocation. |
| build:presubmit --cache_test_results=yes |
| test:presubmit --jvmopt='-Dandroid.presubmit.run=true' |
| |
| # Postsubmit bots don't cache results and use keep_going to find all |
| # failures. Config should be inherited by postsubmit configs. |
| build:postsubmit --keep_going |
| build:postsubmit --cache_test_results=no |
| |
| # Don't use JUnit from Bazel. |
| test --explicit_java_test_deps |
| |
| # Tests depend on not having a real user name, but bazel now returns the |
| # real one. This flag keeps the old behavior of not having a home directory. |
| test --sandbox_fake_username |
| |
| test --sandbox_tmpfs_path=/tmp |
| |
| test:ignored --jvmopt=-Dignored.tests.only=true |
| |
| # When running bazel coverage, make sure to set this user-defined setting. |
| # This is useful, for instance, to mark our version of jacocoant.jar as neverlink |
| # when running coverage, otherwise it will conflict at runtime with the version |
| # bazel uses and coverage won't be collected for targets that depend on it, directly |
| # and indirectly. See b/112891050 for more details. |
| coverage --define coverage=true |
| |
| build --sandbox_tmpfs_path=/tmp |
| build --javacopt="-g:source,lines,vars" # Keep debug info |
| build --javacopt=-Xep:DoNotCall:OFF # github.com/google/error-prone/issues/1131 |
| build --cxxopt=-std=c++11 |
| build --copt=-fvisibility=hidden |
| |
| # Forwards the system $SHELL environment variable so remote execution of bazel |
| # finds make in the ndk-build script (see b/72179674). |
| build --test_env=SHELL |
| |
| build:upsalite_results --bes_backend=buildeventservice.googleapis.com |
| build:upsalite_results --bes_timeout=60s |
| build:upsalite_results --auth_scope=https://www.googleapis.com/auth/cloud-source-tools |
| build:upsalite_results --project_id=908081808034 |
| |
| build:remote_common --config=upsalite_results |
| |
| # Enable the remote cache so all remote action results can be shared |
| build:remote_common --remote_cache=remotebuildexecution.googleapis.com |
| build:remote_common --tls_enabled=true # Enable encryption |
| build:remote_common --experimental_strict_action_env=true |
| build:remote_common --remote_timeout=3600 |
| |
| # Enable authentication. This will pick up application default credentials by |
| # default. You can use --auth_credentials=some_file.json to use a service |
| # account credential instead. |
| build:remote_common --auth_enabled=true |
| |
| build:release --copt=-fdata-sections |
| build:release --cxxopt=-fdata-sections |
| build:release --copt=-fno-exceptions |
| build:release --cxxopt=-fno-exceptions |
| build:release --copt=-ffunction-sections |
| build:release --cxxopt=-ffunction-sections |
| build:release -c opt |
| build:release --strip=always |
| |
| # Mimics the release config to report accurate performance numbers in tests. |
| build:remote_common --config=release |
| |
| # Use prebuilt JDK when doing local bazel build/test |
| build --host_javabase=//prebuilts/studio/jdk:jdk_runtime |
| build --javabase=//prebuilts/studio/jdk:jdk_runtime |
| build --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 |
| build --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 |
| |
| # cpp sandbox is very slow on mac and linux |
| build --strategy=CppCompile=standalone |
| build --strategy=CppLink=standalone |
| build --strategy=CcStrip=standalone |
| build --stripopt=--strip-unneeded |
| |
| # default android native abis |
| build --fat_apk_cpu=x86,x86_64,armeabi-v7a,armeabi,arm64-v8a |
| |
| # Remote execution configuration. Enable remote_common args which include |
| # Upsalite test reporting. |
| build:remote --config=remote_common |
| build:remote --nobuild_runfile_links |
| build:remote --strategy=CppCompile=remote |
| build:remote --strategy=CppLink=remote |
| |
| build:remote --show_timestamps |
| |
| # Import several flags related to specifying the toolchain and (if applicable) |
| # java properties. |
| build:remote --host_javabase=//prebuilts/studio/jdk:jdk_runtime |
| build:remote --javabase=//prebuilts/studio/jdk:jdk_runtime |
| 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 |
| |
| # Set various strategies so that all actions execute remotely. Mixing remote |
| # and local execution will lead to errors unless the toolchain and remote |
| # machine exactly match the host machine. |
| build:remote --spawn_strategy=remote |
| build:remote --strategy=Javac=remote |
| build:remote --strategy=Closure=remote |
| build:remote --genrule_strategy=remote |
| build:remote --define=EXECUTOR=remote |
| |
| # Compute MD5 digests of files with multiple threads. Testing to see if this |
| # leads to better performance with RBE. See b/77543953. |
| build:remote --experimental_multi_threaded_digest=true |
| |
| # Enable remote execution so actions are performed on the remote systems. |
| build:remote --remote_executor=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 --experimental_strict_action_env=true |
| |
| # Set flags for remote_common which includes Upsalite uploading |
| build:remote-cache --config=remote_common |
| |
| # 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-cache --experimental_strict_action_env=true |
| |
| # Set various strategies so that all action results can be looked up from and |
| # uploaded to the remote cache. |
| build:remote-cache --spawn_strategy=sandboxed |
| build:remote-cache --strategy=Javac=sandboxed |
| build:remote-cache --strategy=Closure=sandboxed |
| build:remote-cache --genrule_strategy=sandboxed |
| |
| # Set flags for uploading to BES without Remote Cache. |
| build:results-local --config=upsalite_results |
| build:results-local --tls_enabled=true |
| build:results-local --auth_enabled=true |
| build:results-local --spawn_strategy=local |
| build:results-local --remote_cache=remotebuildexecution.googleapis.com |
| build:results-local --remote_timeout=3600 |
| build:results-local --remote_instance_name=projects/google.com:android-studio-alphasource/instances/default_instance |
| |
| # Top level config group for remote cache local execution on Mac. |
| build:mac-experimental --config=remote-cache |
| build:mac-experimental --experimental_remote_platform_override='properties:{name:"platform" value:"mac"}' |
| |
| # Top level config group for remote cache local execution on Linux. |
| build:linux-experimental --config=remote-cache |
| build:linux-experimental --experimental_remote_platform_override='properties:{name:"platform" value:"linux"}' |