Home | History | Annotate | Download | only in cros
      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