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