| # Copyright (c) 2014 The Native Client Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/nacl/config.gni") |
| import("//build/toolchain/gcc_toolchain.gni") |
| |
| # This template defines a NaCl toolchain. |
| # |
| # It requires the following variables specifying the executables to run: |
| # - cc |
| # - cxx |
| # - ar |
| # - ld |
| |
| template("nacl_toolchain") { |
| assert(defined(invoker.cc), "nacl_toolchain() must specify a \"cc\" value") |
| assert(defined(invoker.cxx), "nacl_toolchain() must specify a \"cxx\" value") |
| assert(defined(invoker.ar), "nacl_toolchain() must specify a \"ar\" value") |
| assert(defined(invoker.ld), "nacl_toolchain() must specify a \"ld\" value") |
| gcc_toolchain(target_name) { |
| if (defined(invoker.executable_extension)) { |
| executable_extension = invoker.executable_extension |
| } else { |
| executable_extension = ".nexe" |
| } |
| rebuild_define = "NACL_TC_REV=" + invoker.toolchain_revision |
| |
| forward_variables_from(invoker, |
| [ |
| "ar", |
| "cc", |
| "cxx", |
| "deps", |
| "ld", |
| "link_outputs", |
| "nm", |
| "readelf", |
| "strip", |
| "extra_cppflags", |
| ]) |
| |
| toolchain_args = { |
| # Use all values set on the invoker's toolchain_args. |
| forward_variables_from(invoker.toolchain_args, "*") |
| |
| current_os = "nacl" |
| |
| # We do not support component builds with the NaCl toolchains. |
| is_component_build = false |
| |
| # We do not support tcmalloc in the NaCl toolchains. |
| use_allocator = "none" |
| use_allocator_shim = false |
| |
| # We do not support clang profiling in the NaCl toolchains. |
| use_clang_profiling = false |
| use_clang_coverage = false |
| coverage_instrumentation_input_file = "" |
| |
| if (use_rbe) { |
| if (is_win) { |
| rbe_cc_cfg_file = "${rbe_cfg_dir}/rewrapper_windows_nacl.cfg" |
| } else { |
| # TODO(ukai): non linux? |
| rbe_cc_cfg_file = "${rbe_cfg_dir}/rewrapper_linux_nacl.cfg" |
| } |
| } |
| } |
| } |
| } |