| # 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. |
| # (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. |
| # (There are other rewrapper options that are not exposed.) |
| cxx_rbe_exec_strategy = "remote" |
| } |