• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Defines the configuration of Remote Build Execution (RBE).
2
3declare_args() {
4  # The directory where the re-client tooling binaries are.
5  rbe_bin_dir = rebase_path("//buildtools/reclient", root_build_dir)
6
7  # Execution root - this should be the root of the source tree.
8  # This is defined here instead of in the config file because
9  # this will vary depending on where the user has placed the
10  # chromium source on their system.
11  rbe_exec_root = rebase_path("//")
12
13  # Set to true to enable remote compilation using reclient.
14  use_remoteexec = false
15
16  # Set to true to enable remote linking using reclient.
17  use_remoteexec_links = false
18
19  # The directory where the re-client configuration files are.
20  rbe_cfg_dir = "//buildtools/reclient_cfgs"
21}
22
23declare_args() {
24  # Set to the path of the RBE reclient configuration files.
25  # Configuration file selection based on operating system.
26  if (host_os == "linux") {
27    rbe_py_cfg_file =
28        rebase_path(rbe_cfg_dir, root_build_dir) + "/python/rewrapper_linux.cfg"
29    rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
30                      "/chromium-browser-clang/rewrapper_linux.cfg"
31    rbe_link_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
32                        "/chromium-browser-clang/rewrapper_linux_link.cfg"
33  } else if (host_os == "win") {
34    rbe_py_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
35                      "/python/rewrapper_windows.cfg"
36    rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
37                      "/chromium-browser-clang/rewrapper_windows.cfg"
38    rbe_link_cfg_file = ""
39  } else if (host_os == "mac") {
40    rbe_py_cfg_file =
41        rebase_path(rbe_cfg_dir, root_build_dir) + "/python/rewrapper_mac.cfg"
42    rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
43                      "/chromium-browser-clang/rewrapper_mac.cfg"
44    rbe_link_cfg_file = ""
45  } else {
46    rbe_linkcfg_file = ""
47    rbe_py_cfg_file = ""
48    rbe_cc_cfg_file = ""
49  }
50
51  # Set to the path of the RBE recleint wrapper for ChromeOS.
52  rbe_cros_cc_wrapper = "${rbe_bin_dir}/rewrapper"
53}
54
55if (use_remoteexec && current_toolchain == default_toolchain) {
56  # Check existence of reclient configs and show user friendly error message if
57  # it doesn't.
58  exec_script(rebase_path("//build/toolchain/check_rewrapper_cfg.py"),
59              [ rbe_cc_cfg_file ],
60              "",
61              [ rebase_path(rbe_cc_cfg_file, ".", root_build_dir) ])
62}
63
64if (is_win) {
65  if (use_remoteexec_links) {
66    print("For now, remote linking is not available for Windows.")
67    use_remoteexec_links = false
68  }
69}
70if (is_mac || is_ios) {
71  if (use_remoteexec_links) {
72    print("For now, remote linking is not available on Macs.")
73    use_remoteexec_links = false
74  }
75}
76