| # Copyright 2021 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| import("//build_overrides/pigweed.gni") |
| import("//build_overrides/pigweed_environment.gni") |
| import("$dir_pw_toolchain/rbe.gni") |
| |
| declare_args() { |
| # This flag allows you to specify the root directory of the clang, clang++, |
| # and llvm-ar binaries to use when compiling with a clang-based toolchain. |
| # This is useful for debugging toolchain-related issues by building with an |
| # externally-provided toolchain. |
| pw_toolchain_CLANG_PREFIX = "" |
| |
| # This flag allows you to specify the root directory of the rustc binary. |
| pw_toolchain_RUST_PREFIX = "" |
| } |
| |
| pw_toolchain_clang_tools = { |
| if (pw_toolchain_CLANG_PREFIX != "") { |
| ar = pw_toolchain_CLANG_PREFIX + "/" |
| ld = pw_toolchain_CLANG_PREFIX + "/" |
| cc = pw_toolchain_CLANG_PREFIX + "/" |
| cxx = pw_toolchain_CLANG_PREFIX + "/" |
| } else { |
| ar = "" |
| ld = "" |
| cc = "" |
| cxx = "" |
| rustc = "" |
| } |
| |
| if (pw_toolchain_RUST_PREFIX != "") { |
| rustc = pw_toolchain_RUST_PREFIX + "/" |
| } else { |
| rustc = "" |
| } |
| _rbe_debug_flag = "" |
| if (pw_toolchain_USE_RBE) { |
| if (pw_toolchain_RBE_DEBUG) { |
| _rbe_debug_flag = " -v" |
| } |
| _exec_root = rebase_path("//") |
| _rewrapper_binary = "rewrapper" |
| _pw_rbe_config = pw_rbe_clang_config |
| _rbe_toolchain_prefix = |
| _rewrapper_binary + |
| " --labels=type=compile,lang=cpp,compiler=clang --cfg=" + |
| _pw_rbe_config + " --exec_root=" + _exec_root + " -- " + |
| rebase_path(pw_env_setup_CIPD_PIGWEED, root_build_dir) + "/bin/" |
| |
| cc = _rbe_toolchain_prefix + "clang" + _rbe_debug_flag |
| cxx = _rbe_toolchain_prefix + "clang++" + _rbe_debug_flag |
| } else { |
| cc += "clang" |
| cxx += "clang++" |
| } |
| ar += "llvm-ar" |
| ld += "clang++" |
| rustc += "rustc" |
| } |