blob: f717c629b09034bd11b0d56d5cc9fc67504a1e61 [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() {
# Set to true to enable distributed compilation using RBE.
# This may affect Rust and C++ compiles.
enable_rbe = false
# Set to true to distribute C++ compiles remotely using RBE.
# This takes precedence over `use_goma` in //build/toolchain/goma.gni.
# This feature is experimental and will be likely renamed later.
#
# Requires GN args:
# `enable_rbe = true`
#
use_reclient_cxx_experimental = false
# One of {local,remote}:
# * 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.
# (There are other rewrapper options that are not exposed.)
rbe_exec_strategy = "remote"
################################################################
### Special test modes: enable at most one of the following: ###
################################################################
# 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.
#
# Requires GN args:
# `enable_rbe = true`
# to use the remote wrapper script, even without RBE
#
# Ignores:
# `rbe_exec_strategy`
# because RBE is not used
#
check_rustc_determinism = false
# Check consistency between local and remote rust compiles.
# This check is slow and expensive and mostly intended for CI.
#
# Requires GN args:
# `enable_rbe = true`
#
check_rustc_consistency = false
}