xref: /aosp_15_r20/external/cronet/build/toolchain/nacl_toolchain.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright (c) 2014 The Native Client Authors. All rights reserved.
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 Workerimport("//build/config/nacl/config.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/toolchain/gcc_toolchain.gni")
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard Worker# This template defines a NaCl toolchain.
9*6777b538SAndroid Build Coastguard Worker#
10*6777b538SAndroid Build Coastguard Worker# It requires the following variables specifying the executables to run:
11*6777b538SAndroid Build Coastguard Worker#  - cc
12*6777b538SAndroid Build Coastguard Worker#  - cxx
13*6777b538SAndroid Build Coastguard Worker#  - ar
14*6777b538SAndroid Build Coastguard Worker#  - ld
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Workertemplate("nacl_toolchain") {
17*6777b538SAndroid Build Coastguard Worker  assert(defined(invoker.cc), "nacl_toolchain() must specify a \"cc\" value")
18*6777b538SAndroid Build Coastguard Worker  assert(defined(invoker.cxx), "nacl_toolchain() must specify a \"cxx\" value")
19*6777b538SAndroid Build Coastguard Worker  assert(defined(invoker.ar), "nacl_toolchain() must specify a \"ar\" value")
20*6777b538SAndroid Build Coastguard Worker  assert(defined(invoker.ld), "nacl_toolchain() must specify a \"ld\" value")
21*6777b538SAndroid Build Coastguard Worker  gcc_toolchain(target_name) {
22*6777b538SAndroid Build Coastguard Worker    if (defined(invoker.executable_extension)) {
23*6777b538SAndroid Build Coastguard Worker      executable_extension = invoker.executable_extension
24*6777b538SAndroid Build Coastguard Worker    } else {
25*6777b538SAndroid Build Coastguard Worker      executable_extension = ".nexe"
26*6777b538SAndroid Build Coastguard Worker    }
27*6777b538SAndroid Build Coastguard Worker    rebuild_define = "NACL_TC_REV=" + invoker.toolchain_revision
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker    forward_variables_from(invoker,
30*6777b538SAndroid Build Coastguard Worker                           [
31*6777b538SAndroid Build Coastguard Worker                             "ar",
32*6777b538SAndroid Build Coastguard Worker                             "cc",
33*6777b538SAndroid Build Coastguard Worker                             "cxx",
34*6777b538SAndroid Build Coastguard Worker                             "deps",
35*6777b538SAndroid Build Coastguard Worker                             "ld",
36*6777b538SAndroid Build Coastguard Worker                             "link_outputs",
37*6777b538SAndroid Build Coastguard Worker                             "nm",
38*6777b538SAndroid Build Coastguard Worker                             "readelf",
39*6777b538SAndroid Build Coastguard Worker                             "strip",
40*6777b538SAndroid Build Coastguard Worker                             "extra_cppflags",
41*6777b538SAndroid Build Coastguard Worker                           ])
42*6777b538SAndroid Build Coastguard Worker
43*6777b538SAndroid Build Coastguard Worker    toolchain_args = {
44*6777b538SAndroid Build Coastguard Worker      # Use all values set on the invoker's toolchain_args.
45*6777b538SAndroid Build Coastguard Worker      forward_variables_from(invoker.toolchain_args, "*")
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Worker      current_os = "nacl"
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard Worker      # We do not support component builds with the NaCl toolchains.
50*6777b538SAndroid Build Coastguard Worker      is_component_build = false
51*6777b538SAndroid Build Coastguard Worker
52*6777b538SAndroid Build Coastguard Worker      # We do not support clang profiling in the NaCl toolchains.
53*6777b538SAndroid Build Coastguard Worker      use_clang_profiling = false
54*6777b538SAndroid Build Coastguard Worker      use_clang_coverage = false
55*6777b538SAndroid Build Coastguard Worker      coverage_instrumentation_input_file = ""
56*6777b538SAndroid Build Coastguard Worker
57*6777b538SAndroid Build Coastguard Worker      if (use_remoteexec) {
58*6777b538SAndroid Build Coastguard Worker        if (is_win) {
59*6777b538SAndroid Build Coastguard Worker          rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
60*6777b538SAndroid Build Coastguard Worker                            "/nacl/rewrapper_windows.cfg"
61*6777b538SAndroid Build Coastguard Worker        } else if (is_mac) {
62*6777b538SAndroid Build Coastguard Worker          rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
63*6777b538SAndroid Build Coastguard Worker                            "/nacl/rewrapper_mac.cfg"
64*6777b538SAndroid Build Coastguard Worker        } else {
65*6777b538SAndroid Build Coastguard Worker          # TODO(ukai): non linux?
66*6777b538SAndroid Build Coastguard Worker          rbe_cc_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
67*6777b538SAndroid Build Coastguard Worker                            "/nacl/rewrapper_linux.cfg"
68*6777b538SAndroid Build Coastguard Worker        }
69*6777b538SAndroid Build Coastguard Worker      }
70*6777b538SAndroid Build Coastguard Worker
71*6777b538SAndroid Build Coastguard Worker      if (use_remoteexec_links) {
72*6777b538SAndroid Build Coastguard Worker        rbe_link_cfg_file = rebase_path(rbe_cfg_dir, root_build_dir) +
73*6777b538SAndroid Build Coastguard Worker                            "/nacl/rewrapper_linux_link.cfg"
74*6777b538SAndroid Build Coastguard Worker      }
75*6777b538SAndroid Build Coastguard Worker
76*6777b538SAndroid Build Coastguard Worker      # TODO(b/282032209): Re-enable remote nacl links once mismatches due to
77*6777b538SAndroid Build Coastguard Worker      # linking with absolute paths has been fixed.
78*6777b538SAndroid Build Coastguard Worker      use_remoteexec_links = false
79*6777b538SAndroid Build Coastguard Worker    }
80*6777b538SAndroid Build Coastguard Worker  }
81*6777b538SAndroid Build Coastguard Worker}
82