# Remote Build Execution requires a strong hash function, such as SHA256.
startup --host_jvm_args=-Dbazel.DigestFunction=SHA256

# Disable persistent workers for Typescript (#3816)
build --strategy=TypeScriptCompile=sandboxed,local

# Compatibility flags to avoid regressions.
common --incompatible_disallow_empty_glob

build --workspace_status_command tools/buildstamp/get_workspace_status
build --auto_cpu_environment_group=//buildenv:cpu

# Ensure clang is used, by default, over any other C++ installation (e.g. gcc).
build --client_env=CC=clang
# We require C++17, but bazel defaults to C++0x (pre-C++11).
build --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 --client_env=BAZEL_CXXOPTS=-std=c++17
# Don't warn on deprecations when compiling protobufs.
# This generates a lot of spurious warnings when compiling the definitions of proto fields
# which are marked deprecated.
build --per_file_copt=.*\.pb\.cc@-Wno-deprecated-declarations
# Disable diagnostics on external repositories as we don't control them.
build --per_file_copt=external/.*@-w
# Disable diagnostics in host mode. There is no host_per_file_copt and
# everything we build in the host configuration we either also build in the
# target configuration or is external, so we can't control it.
# If/when Bazel supports --host_per_file_copt, we could use that instead:
# https://github.com/bazelbuild/bazel/issues/12406.
build --host_copt=-w

# Ensure environment variables are static across machines; allows for cross-user caching.
build --experimental_strict_action_env

# By default, compile for Java 11, run on Java 11
build --java_language_version=11
build --tool_java_language_version=11
build --java_runtime_version=remotejdk_11
build --tool_java_runtime_version=remotejdk_11

# Import default javacopts
import %workspace%/tools/javacopts.bazelrc

# For release, stamp binaries, use optimized mode w/ minimum line table debugging.
build:release --stamp -c opt --copt=-gmlt

# Use the RBE instance in the kythe-repo project
build:remote --remote_instance_name=projects/kythe-repo/instances/default_instance --bes_instance_name=kythe-repo

build:remote --google_default_credentials=true
build:remote --jobs=50
build:remote --remote_timeout=3600
build:remote --remote_cache=grpcs://remotebuildexecution.googleapis.com
build:remote --remote_executor=grpcs://remotebuildexecution.googleapis.com
# Avoid fetching unnecessary intermediate files locally.
build:remote --remote_download_toplevel

# TODO(schroederc): add buildeventservice
# build:remote --bes_backend="buildeventservice.googleapis.com"
# build:remote --bes_timeout=60s
# build:remote --bes_results_url="https://source.cloud.google.com/results/invocations/"

# 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

build:remote --java_runtime_version=rbe_jdk
build:remote --tool_java_runtime_version=rbe_jdk
build:remote --extra_toolchains=//tools/platforms/configs/rbe_default/java:all

build:remote --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:remote --crosstool_top=//tools/platforms/configs/rbe_default/cc:toolchain
build:remote --extra_toolchains=//tools/platforms/configs/rbe_default/config:cc-toolchain

build:remote --extra_execution_platforms=//tools/platforms:rbe
build:remote --host_platform=//tools/platforms:rbe
build:remote --platforms=//tools/platforms:rbe

build:remote --repo_env=KYTHE_DO_NOT_DETECT_BAZEL_TOOLCHAINS=1
build:remote --extra_toolchains=//tools/build_rules/lexyacc:lexyacc_remote_toolchain
build:remote --extra_toolchains=//tools/build_rules/external_tools:external_tools_remote_toolchain

build:remote --action_env=LEIN_JAVA_CMD=

test:prepush --verbose_failures --noshow_loading_progress --noshow_progress
test:prepush --test_summary=terse --test_output=errors
test:prepush --test_tag_filters=-manual,-broken,-arc-ignore,-docker

# Support user-provided user.bazelrc
try-import %workspace%/user.bazelrc
