blob: 038ab2a6c70a1da847118c43923bc29e15953aa0 [file] [log] [blame]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Defines the configuration of RBE and related global variables.
# Prebuilt RBE binaries
rbe_common_tools = [
"//prebuilt/proprietary/third_party/reclient/$host_platform/bootstrap",
"//prebuilt/proprietary/third_party/reclient/$host_platform/reproxy",
"//prebuilt/proprietary/third_party/reclient/$host_platform/rewrapper",
]
# Toolchain-agnostic RBE scripts and configuration.
rbe_common_scripts = [
"//build/rbe/fuchsia-rbe-action.sh",
"//build/rbe/fuchsia-re-client.cfg",
"//build/rbe/fuchsia-reproxy-wrap.sh",
]
rustc_remote_wrapper = "//build/rbe/rustc-remote-wrapper.sh"
# Dependencies for all RBE-enabled rust actions.
rust_rbe_deps = rbe_common_tools + rbe_common_scripts + [ rustc_remote_wrapper ]
cxx_remote_wrapper = "//build/rbe/cxx-remote-wrapper.sh"
# Dependencies for all RBE-enabled C++ actions.
cxx_rbe_deps = rbe_common_tools + rbe_common_scripts + [ cxx_remote_wrapper ]
declare_args() {
#########################
### Rust RBE controls ###
#########################
# Set to true to enable distributed compilation of Rust using RBE.
rust_rbe_enable = false
# One of:
#
# * "remote": Execute action remotely on cache miss.
# The remote cache is always updated with this result.
#
# * "local": Lookup action in the remote cache, but execute action
# locally on cache miss. The locally produced result is
# not uploaded to the remote cache.
#
# * "racing": Race local vs. remote execution, take the first to finish.
#
# (There are other rewrapper options that are not exposed.)
rust_rbe_exec_strategy = "remote"
# Run one of the more expensive checks, intended for CI.
# All of these require rust_rbe_enable=true.
#
# One of:
#
# * "none": No additional check.
#
# * "determinism":
# Check of determinism of rustc targets by running locally twice
# and comparing outputs, failing if any differences are found.
# Even though this check doesn't involve RBE, it uses the same
# wrapper script, which knows what output files to expect and
# compare.
#
# Build outputs that depend on time are discouraged because they
# impact caching.
# If your result depends on the current time, this check will
# definitely fail. If it depends on only the date, there is still
# a nonzero chance of failure, if the rerun falls on the next day.
#
# * "consistency":
# Check consistency between local and remote rust compiles,
# by running both and comparing results.
#
rust_rbe_check = "none"
########################
### C++ RBE controls ###
########################
# Set to true to enable distributed compilation of C++ using RBE.
# Enabling this takes precedence over `use_goma`.
cxx_rbe_enable = false
# One of:
#
# * "remote": Execute action remotely on cache miss.
# The remote cache is always updated with this result.
#
# * "local": Lookup action in the remote cache, but execute action
# locally on cache miss. The locally produced result is
# not uploaded to the remote cache.
#
# * "racing": Race local vs. remote execution, take the first to finish.
#
# (There are other rewrapper options that are not exposed.)
cxx_rbe_exec_strategy = "remote"
}