1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("//build/toolchain/clang.gni") 6 import("//build/toolchain/gcc_toolchain.gni") 7 8 declare_args() { 9 # The CrOS build system supports many different kinds of targets across 10 # many different architectures. Bringing your own toolchain is also supported, 11 # so it's actually impossible to enumerate all toolchains for all targets 12 # as GN toolchain specifications. 13 # These arguments provide a mechanism for specifying your CC, CXX and AR at 14 # buildfile-generation time, allowing the CrOS build system to always use 15 # the right tools for the current target. 16 cros_target_cc = "" 17 cros_target_cxx = "" 18 cros_target_ar = "" 19 } 20 21 gcc_toolchain("target") { 22 assert(cros_target_cc != "", "Must provide target CC.") 23 assert(cros_target_cxx != "", "Must provide target CXX.") 24 assert(cros_target_ar != "", "Must provide target AR.") 25 26 cc = "${cros_target_cc}" 27 cxx = "${cros_target_cxx}" 28 29 ar = "${cros_target_ar}" 30 ld = cxx 31 32 toolchain_cpu_arch = "${cpu_arch}" 33 toolchain_os = "linux" 34 is_clang = is_clang 35 } 36