| # 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", | 
 | ] | 
 |  | 
 | rbe_config_file = "//build/rbe/fuchsia-re-client.cfg" | 
 |  | 
 | # Toolchain-agnostic RBE scripts and configuration. | 
 | rbe_common_scripts = [ | 
 |   "//build/rbe/fuchsia-rbe-action.sh", | 
 |   "//build/rbe/fuchsia-reproxy-wrap.sh", | 
 |   rbe_config_file, | 
 | ] | 
 |  | 
 | 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. | 
 |   # | 
 |   #   * "remote_local_fallback": Execute action remotely first. | 
 |   #         If that fails, run locally instead.  The locally produced | 
 |   #         results are 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. | 
 |   # | 
 |   #   * "remote_local_fallback": Execute action remotely first. | 
 |   #         If that fails, run locally instead.  The locally produced | 
 |   #         result are 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_local_fallback" | 
 | } |