# 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 # and the following which is used in the toolchain_args # - toolchain_cpu (What "current_cpu" should be set to when invoking a # build using this toolchain.) 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") assert(defined(invoker.toolchain_cpu), "nacl_toolchain() must specify a \"toolchain_cpu\"") gcc_toolchain(target_name) { toolchain_os = "nacl" if (defined(invoker.executable_extension)) { executable_extension = invoker.executable_extension } else { executable_extension = ".nexe" } forward_variables_from(invoker, [ "ar", "cc", "cxx", "deps", "is_clang", "is_nacl_glibc", "ld", "link_outputs", "nm", "readelf", "strip", "symbol_level", "toolchain_cpu", ]) # We do not support component builds or sanitizers with the NaCl toolchains. is_component_build = false clear_sanitizers = true rebuild_define = "NACL_TC_REV=" + invoker.toolchain_revision } }