| # 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 |
| } |