|  | # Copyright 2014 The Chromium 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/compiler/compiler.gni") | 
|  | import("//build/config/sysroot.gni") | 
|  | import("//build/toolchain/gcc_toolchain.gni") | 
|  | import("//build/toolchain/cros_toolchain.gni") | 
|  |  | 
|  | # This is the normal toolchain for most targets. | 
|  | gcc_toolchain("target") { | 
|  | ar = cros_target_ar | 
|  | cc = cros_target_cc | 
|  | cxx = cros_target_cxx | 
|  | ld = cxx | 
|  | if (cros_target_ld != "") { | 
|  | ld = cros_target_ld | 
|  | } | 
|  | if (cros_target_nm != "") { | 
|  | nm = cros_target_nm | 
|  | } | 
|  | if (cros_target_readelf != "") { | 
|  | readelf = cros_target_readelf | 
|  | } | 
|  | extra_cflags = cros_target_extra_cflags | 
|  | extra_cppflags = cros_target_extra_cppflags | 
|  | extra_cxxflags = cros_target_extra_cxxflags | 
|  | extra_ldflags = cros_target_extra_ldflags | 
|  |  | 
|  | toolchain_args = { | 
|  | cc_wrapper = "" | 
|  | current_cpu = target_cpu | 
|  | current_os = "chromeos" | 
|  | is_clang = is_clang | 
|  | use_debug_fission = use_debug_fission | 
|  | use_gold = use_gold | 
|  | use_sysroot = use_sysroot | 
|  | } | 
|  | } | 
|  |  | 
|  | # This is a special toolchain needed just for the nacl_bootstrap target in | 
|  | # //native_client/src/trusted/service_runtime/linux. It is identical | 
|  | # to ":target" except that it forces use_debug_fission, use_gold, and | 
|  | # use_sysroot off, and allows the user to set different sets of extra flags. | 
|  | gcc_toolchain("nacl_bootstrap") { | 
|  | ar = cros_target_ar | 
|  | cc = cros_target_cc | 
|  | cxx = cros_target_cxx | 
|  | ld = cxx | 
|  | if (cros_target_ld != "") { | 
|  | ld = cros_target_ld | 
|  | } | 
|  | if (cros_target_nm != "") { | 
|  | nm = cros_target_nm | 
|  | } | 
|  | if (cros_target_readelf != "") { | 
|  | readelf = cros_target_readelf | 
|  | } | 
|  | extra_cflags = cros_nacl_bootstrap_extra_cflags | 
|  | extra_cppflags = cros_nacl_bootstrap_extra_cppflags | 
|  | extra_cxxflags = cros_nacl_bootstrap_extra_cxxflags | 
|  | extra_ldflags = cros_nacl_bootstrap_extra_ldflags | 
|  |  | 
|  | toolchain_args = { | 
|  | cc_wrapper = "" | 
|  | current_cpu = target_cpu | 
|  | current_os = "chromeos" | 
|  | is_clang = is_clang | 
|  | use_debug_fission = false | 
|  | use_gold = false | 
|  | use_sysroot = false | 
|  | } | 
|  | } | 
|  |  | 
|  | gcc_toolchain("host") { | 
|  | # These are args for the template. | 
|  | ar = cros_host_ar | 
|  | cc = cros_host_cc | 
|  | cxx = cros_host_cxx | 
|  | ld = cxx | 
|  | if (cros_host_ld != "") { | 
|  | ld = cros_host_ld | 
|  | } | 
|  | if (cros_host_nm != "") { | 
|  | nm = cros_host_nm | 
|  | } | 
|  | if (cros_host_readelf != "") { | 
|  | readelf = cros_host_readelf | 
|  | } | 
|  | extra_cflags = cros_host_extra_cflags | 
|  | extra_cppflags = cros_host_extra_cppflags | 
|  | extra_cxxflags = cros_host_extra_cxxflags | 
|  | extra_ldflags = cros_host_extra_ldflags | 
|  |  | 
|  | toolchain_args = { | 
|  | cc_wrapper = "" | 
|  | is_clang = cros_host_is_clang | 
|  | current_cpu = host_cpu | 
|  | current_os = "linux" | 
|  | use_sysroot = false | 
|  | } | 
|  | } | 
|  |  | 
|  | gcc_toolchain("v8_snapshot") { | 
|  | # These are args for the template. | 
|  | ar = cros_v8_snapshot_ar | 
|  | cc = cros_v8_snapshot_cc | 
|  | cxx = cros_v8_snapshot_cxx | 
|  | ld = cxx | 
|  | if (cros_v8_snapshot_ld != "") { | 
|  | ld = cros_v8_snapshot_ld | 
|  | } | 
|  | if (cros_v8_snapshot_nm != "") { | 
|  | nm = cros_v8_snapshot_nm | 
|  | } | 
|  | if (cros_v8_snapshot_readelf != "") { | 
|  | readelf = cros_v8_snapshot_readelf | 
|  | } | 
|  | extra_cflags = cros_v8_snapshot_extra_cflags | 
|  | extra_cppflags = cros_v8_snapshot_extra_cppflags | 
|  | extra_cxxflags = cros_v8_snapshot_extra_cxxflags | 
|  | extra_ldflags = cros_v8_snapshot_extra_ldflags | 
|  |  | 
|  | toolchain_args = { | 
|  | cc_wrapper = "" | 
|  | is_clang = cros_v8_snapshot_is_clang | 
|  | if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == "mipsel") { | 
|  | current_cpu = "x86" | 
|  | } else { | 
|  | current_cpu = "x64" | 
|  | } | 
|  | v8_current_cpu = v8_target_cpu | 
|  | current_os = "linux" | 
|  | use_sysroot = false | 
|  | } | 
|  | } |