| # Copyright 2016 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. |
| |
| # CrOS builds must cross-compile on a Linux host for the actual CrOS |
| # device target. There are many different CrOS devices so the build |
| # system provides configuration variables that permit a CrOS build to |
| # control the cross-compilation tool chain. However, requiring such |
| # fine-grain specification is tedious for build-bots and developers. |
| # Consequently, the CrOS build system defaults to a convenience |
| # compilation mode where the compilation host is also the build target. |
| # |
| # Chrome can be compiled in this way with the gn variable: |
| # |
| # target_os = "chromeos" |
| # |
| # To perform a board-specific build, first obtain the correct system |
| # root (http://goo.gl/aFB4XH) for the board. Then configure GN to use it |
| # by setting appropriate cross-compilation variables. |
| # |
| # For example, to compile a Chrome source tree in /g/src for an |
| # auron_paine CrOS device with the system root cached in /g/.cros_cache, |
| # the following GN arguments must be provided to configure |
| # cross-compilation with Goma acceleration. (NB: additional variables |
| # will be necessary to successfully compile a working CrOS Chrome. See |
| # the definition of GYP_DEFINES inside a sysroot shell.) |
| # |
| # goma_dir = "/g/.cros_cache/common/goma+2" |
| # target_sysroot= /g/.cros_cache/chrome-sdk/tarballs/auron_paine+7644.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz" |
| # cros_target_cc = "x86_64-cros-linux-gnu-gcc -B/g/.cros_cache/chrome-sdk/tarballs/auron_paine+7657.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold" |
| # cros_target_cxx = "x86_64-cros-linux-gnu-g++ -B/g/.cros_cache/chrome-sdk/tarballs/auron_paine+7657.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.25.51-gold" |
| # cros_target_ar = "x86_64-cros-linux-gnu-gcc-ar" |
| # target_cpu = "x64" |
| |
| import("//build/config/clang/clang.gni") |
| import("//build/config/compiler/compiler.gni") |
| |
| declare_args() { |
| # These must be specified for a board-specific build. |
| cros_target_ar = "ar" |
| cros_target_cc = "gcc" |
| cros_target_cxx = "g++" |
| cros_target_nm = "" |
| cros_target_readelf = "" |
| |
| # These can be optionally set. The "_cppflags" will be applied to *both* |
| # C and C++ files; use "_cxxflags" for C++-only flags. |
| cros_target_extra_cflags = "" |
| cros_target_extra_cppflags = "" |
| cros_target_extra_cxxflags = "" |
| cros_target_extra_ldflags = "" |
| |
| # is_clang is used instead of cros_target_is_clang |
| cros_host_ar = "${clang_base_path}/bin/llvm-ar" |
| cros_host_cc = "${clang_base_path}/bin/clang" |
| cros_host_cxx = "${clang_base_path}/bin/clang++" |
| cros_host_is_clang = true |
| cros_host_nm = "" |
| cros_host_readelf = "" |
| cros_host_extra_cflags = "" |
| cros_host_extra_cppflags = "" |
| cros_host_extra_cxxflags = "" |
| cros_host_extra_ldflags = "" |
| cros_host_sysroot = "" |
| |
| cros_v8_snapshot_ar = "${clang_base_path}/bin/llvm-ar" |
| cros_v8_snapshot_cc = "${clang_base_path}/bin/clang" |
| cros_v8_snapshot_cxx = "${clang_base_path}/bin/clang++" |
| cros_v8_snapshot_is_clang = true |
| cros_v8_snapshot_nm = "" |
| cros_v8_snapshot_readelf = "" |
| cros_v8_snapshot_extra_cflags = "" |
| cros_v8_snapshot_extra_cppflags = "" |
| cros_v8_snapshot_extra_cxxflags = "" |
| cros_v8_snapshot_extra_ldflags = "" |
| cros_v8_snapshot_sysroot = "" |
| |
| cros_nacl_bootstrap_extra_cflags = "" |
| cros_nacl_bootstrap_extra_cppflags = "" |
| cros_nacl_bootstrap_extra_cxxflags = "" |
| cros_nacl_bootstrap_extra_ldflags = "" |
| } |
| |
| declare_args() { |
| cros_target_ld = cros_target_cxx |
| cros_host_ld = cros_host_cxx |
| cros_v8_snapshot_ld = cros_v8_snapshot_cxx |
| } |