xref: /aosp_15_r20/external/cronet/build/toolchain/cros_toolchain.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2016 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker# CrOS builds must cross-compile on a Linux host for the actual CrOS
6*6777b538SAndroid Build Coastguard Worker# device target. There are many different CrOS devices so the build
7*6777b538SAndroid Build Coastguard Worker# system provides configuration variables that permit a CrOS build to
8*6777b538SAndroid Build Coastguard Worker# control the cross-compilation tool chain. However, requiring such
9*6777b538SAndroid Build Coastguard Worker# fine-grain specification is tedious for build-bots and developers.
10*6777b538SAndroid Build Coastguard Worker# Consequently, the CrOS build system defaults to a convenience
11*6777b538SAndroid Build Coastguard Worker# compilation mode where the compilation host is also the build target.
12*6777b538SAndroid Build Coastguard Worker#
13*6777b538SAndroid Build Coastguard Worker# Chrome can be compiled in this way with the gn variable:
14*6777b538SAndroid Build Coastguard Worker#
15*6777b538SAndroid Build Coastguard Worker# target_os = "chromeos"
16*6777b538SAndroid Build Coastguard Worker#
17*6777b538SAndroid Build Coastguard Worker# To perform a board-specific build, first obtain the correct system
18*6777b538SAndroid Build Coastguard Worker# root (http://goo.gl/aFB4XH) for the board. Then configure GN to use it
19*6777b538SAndroid Build Coastguard Worker# by setting appropriate cross-compilation variables.
20*6777b538SAndroid Build Coastguard Worker#
21*6777b538SAndroid Build Coastguard Worker# For example, to compile a Chrome source tree in /g/src for an
22*6777b538SAndroid Build Coastguard Worker# auron_paine CrOS device with the system root cached in /g/.cros_cache,
23*6777b538SAndroid Build Coastguard Worker# the following GN arguments must be provided to configure
24*6777b538SAndroid Build Coastguard Worker# cross-compilation with Goma acceleration. (NB: additional variables
25*6777b538SAndroid Build Coastguard Worker# will be necessary to successfully compile a working CrOS Chrome. See
26*6777b538SAndroid Build Coastguard Worker# the definition of GYP_DEFINES inside a sysroot shell.)
27*6777b538SAndroid Build Coastguard Worker#
28*6777b538SAndroid Build Coastguard Worker# goma_dir = "/g/.cros_cache/common/goma+2"
29*6777b538SAndroid Build Coastguard Worker# target_sysroot= /g/.cros_cache/chrome-sdk/tarballs/auron_paine+7644.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz"
30*6777b538SAndroid Build Coastguard Worker# 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"
31*6777b538SAndroid Build Coastguard Worker# 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"
32*6777b538SAndroid Build Coastguard Worker# cros_target_ar = "x86_64-cros-linux-gnu-gcc-ar"
33*6777b538SAndroid Build Coastguard Worker# target_cpu = "x64"
34*6777b538SAndroid Build Coastguard Worker
35*6777b538SAndroid Build Coastguard Workerimport("//build/config/clang/clang.gni")
36*6777b538SAndroid Build Coastguard Workerimport("//build/config/compiler/compiler.gni")
37*6777b538SAndroid Build Coastguard Worker
38*6777b538SAndroid Build Coastguard Workerdeclare_args() {
39*6777b538SAndroid Build Coastguard Worker  # These must be specified for a board-specific build.
40*6777b538SAndroid Build Coastguard Worker  cros_target_ar = "ar"
41*6777b538SAndroid Build Coastguard Worker  cros_target_cc = "gcc"
42*6777b538SAndroid Build Coastguard Worker  cros_target_cxx = "g++"
43*6777b538SAndroid Build Coastguard Worker  cros_target_nm = ""
44*6777b538SAndroid Build Coastguard Worker  cros_target_readelf = ""
45*6777b538SAndroid Build Coastguard Worker
46*6777b538SAndroid Build Coastguard Worker  # These can be optionally set. The "_cppflags"  will be applied to *both*
47*6777b538SAndroid Build Coastguard Worker  # C and C++ files; use "_cxxflags" for C++-only flags.
48*6777b538SAndroid Build Coastguard Worker  cros_target_extra_cflags = ""
49*6777b538SAndroid Build Coastguard Worker  cros_target_extra_cppflags = ""
50*6777b538SAndroid Build Coastguard Worker  cros_target_extra_cxxflags = ""
51*6777b538SAndroid Build Coastguard Worker  cros_target_extra_ldflags = ""
52*6777b538SAndroid Build Coastguard Worker
53*6777b538SAndroid Build Coastguard Worker  cros_host_ar = "${clang_base_path}/bin/llvm-ar"
54*6777b538SAndroid Build Coastguard Worker  cros_host_cc = "${clang_base_path}/bin/clang"
55*6777b538SAndroid Build Coastguard Worker  cros_host_cxx = "${clang_base_path}/bin/clang++"
56*6777b538SAndroid Build Coastguard Worker  cros_host_nm = ""
57*6777b538SAndroid Build Coastguard Worker  cros_host_readelf = ""
58*6777b538SAndroid Build Coastguard Worker  cros_host_extra_cflags = ""
59*6777b538SAndroid Build Coastguard Worker  cros_host_extra_cppflags = ""
60*6777b538SAndroid Build Coastguard Worker  cros_host_extra_cxxflags = ""
61*6777b538SAndroid Build Coastguard Worker  cros_host_extra_ldflags = ""
62*6777b538SAndroid Build Coastguard Worker  cros_host_sysroot = ""
63*6777b538SAndroid Build Coastguard Worker
64*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_ar = "${clang_base_path}/bin/llvm-ar"
65*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_cc = "${clang_base_path}/bin/clang"
66*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_cxx = "${clang_base_path}/bin/clang++"
67*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_nm = ""
68*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_readelf = ""
69*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_extra_cflags = ""
70*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_extra_cppflags = ""
71*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_extra_cxxflags = ""
72*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_extra_ldflags = ""
73*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_sysroot = ""
74*6777b538SAndroid Build Coastguard Worker
75*6777b538SAndroid Build Coastguard Worker  cros_nacl_bootstrap_extra_cflags = ""
76*6777b538SAndroid Build Coastguard Worker  cros_nacl_bootstrap_extra_cppflags = ""
77*6777b538SAndroid Build Coastguard Worker  cros_nacl_bootstrap_extra_cxxflags = ""
78*6777b538SAndroid Build Coastguard Worker  cros_nacl_bootstrap_extra_ldflags = ""
79*6777b538SAndroid Build Coastguard Worker
80*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_ar = "ar"
81*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_cc = "gcc"
82*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_cxx = "g++"
83*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_readelf = ""
84*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_sysroot = ""
85*6777b538SAndroid Build Coastguard Worker}
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Workerdeclare_args() {
88*6777b538SAndroid Build Coastguard Worker  cros_target_ld = cros_target_cxx
89*6777b538SAndroid Build Coastguard Worker  cros_host_ld = cros_host_cxx
90*6777b538SAndroid Build Coastguard Worker  cros_v8_snapshot_ld = cros_v8_snapshot_cxx
91*6777b538SAndroid Build Coastguard Worker  cros_nacl_helper_arm32_ld = cros_nacl_helper_arm32_cxx
92*6777b538SAndroid Build Coastguard Worker}
93