xref: /aosp_15_r20/external/angle/build/toolchain/ios/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright 2021 The Chromium Authors
2*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Workerimport("//build/config/ios/ios_sdk.gni")
6*8975f5c5SAndroid Build Coastguard Workerimport("//build/toolchain/apple/toolchain.gni")
7*8975f5c5SAndroid Build Coastguard Worker
8*8975f5c5SAndroid Build Coastguard Worker# Specialisation of the apple_toolchain template to declare the toolchain
9*8975f5c5SAndroid Build Coastguard Worker# and its tools to build target for iOS platform.
10*8975f5c5SAndroid Build Coastguard Workertemplate("ios_toolchain") {
11*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.toolchain_args),
12*8975f5c5SAndroid Build Coastguard Worker         "Toolchains must declare toolchain_args")
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Worker  apple_toolchain(target_name) {
15*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker, "*", [ "toolchain_args" ])
16*8975f5c5SAndroid Build Coastguard Worker
17*8975f5c5SAndroid Build Coastguard Worker    sdk_developer_dir = ios_sdk_developer_dir
18*8975f5c5SAndroid Build Coastguard Worker    deployment_target = ios_deployment_target
19*8975f5c5SAndroid Build Coastguard Worker    target_environment = target_environment
20*8975f5c5SAndroid Build Coastguard Worker    bin_path = ios_bin_path
21*8975f5c5SAndroid Build Coastguard Worker
22*8975f5c5SAndroid Build Coastguard Worker    toolchain_args = {
23*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker.toolchain_args, "*")
24*8975f5c5SAndroid Build Coastguard Worker      xcode_build = xcode_build
25*8975f5c5SAndroid Build Coastguard Worker      current_os = "ios"
26*8975f5c5SAndroid Build Coastguard Worker    }
27*8975f5c5SAndroid Build Coastguard Worker  }
28*8975f5c5SAndroid Build Coastguard Worker}
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker# Specialisation of the ios_toolchain template to declare the toolchain
31*8975f5c5SAndroid Build Coastguard Worker# and its tools to build application extension for iOS platform.
32*8975f5c5SAndroid Build Coastguard Workertemplate("ios_app_ext_toolchain") {
33*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.toolchain_args),
34*8975f5c5SAndroid Build Coastguard Worker         "Toolchains must declare toolchain_args")
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker  ios_toolchain(target_name) {
37*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker, "*", [ "toolchain_args" ])
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Worker    toolchain_args = {
40*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker.toolchain_args, "*")
41*8975f5c5SAndroid Build Coastguard Worker
42*8975f5c5SAndroid Build Coastguard Worker      ios_is_app_extension = true
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker      # Those variables are defined outside of //build and thus only exists
45*8975f5c5SAndroid Build Coastguard Worker      # when used as part of Chromium. Use build_with_chromium to check if
46*8975f5c5SAndroid Build Coastguard Worker      # they can be overridden safely. This prevents breaking third-party
47*8975f5c5SAndroid Build Coastguard Worker      # projects such as WebRTC that only uses //build but not //base.
48*8975f5c5SAndroid Build Coastguard Worker      if (build_with_chromium) {
49*8975f5c5SAndroid Build Coastguard Worker        use_partition_alloc = false
50*8975f5c5SAndroid Build Coastguard Worker        ios_partition_alloc_enabled = false
51*8975f5c5SAndroid Build Coastguard Worker      }
52*8975f5c5SAndroid Build Coastguard Worker    }
53*8975f5c5SAndroid Build Coastguard Worker  }
54*8975f5c5SAndroid Build Coastguard Worker}
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Worker# Specialisation of the ios_toolchain template to declare the toolchain
57*8975f5c5SAndroid Build Coastguard Worker# and its tools to build application extension for iOS platform.
58*8975f5c5SAndroid Build Coastguard Workertemplate("ios_blink_app_ext_toolchain") {
59*8975f5c5SAndroid Build Coastguard Worker  assert(defined(invoker.toolchain_args),
60*8975f5c5SAndroid Build Coastguard Worker         "Toolchains must declare toolchain_args")
61*8975f5c5SAndroid Build Coastguard Worker
62*8975f5c5SAndroid Build Coastguard Worker  ios_toolchain(target_name) {
63*8975f5c5SAndroid Build Coastguard Worker    forward_variables_from(invoker, "*", [ "toolchain_args" ])
64*8975f5c5SAndroid Build Coastguard Worker
65*8975f5c5SAndroid Build Coastguard Worker    toolchain_args = {
66*8975f5c5SAndroid Build Coastguard Worker      forward_variables_from(invoker.toolchain_args, "*")
67*8975f5c5SAndroid Build Coastguard Worker
68*8975f5c5SAndroid Build Coastguard Worker      ios_is_app_extension = true
69*8975f5c5SAndroid Build Coastguard Worker    }
70*8975f5c5SAndroid Build Coastguard Worker  }
71*8975f5c5SAndroid Build Coastguard Worker}
72*8975f5c5SAndroid Build Coastguard Worker
73*8975f5c5SAndroid Build Coastguard Workerios_toolchain("ios_clang_arm64") {
74*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
75*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
76*8975f5c5SAndroid Build Coastguard Worker  }
77*8975f5c5SAndroid Build Coastguard Worker}
78*8975f5c5SAndroid Build Coastguard Worker
79*8975f5c5SAndroid Build Coastguard Workerios_toolchain("ios_clang_arm64_16_0") {
80*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
81*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
82*8975f5c5SAndroid Build Coastguard Worker    ios_deployment_target = "16.0"
83*8975f5c5SAndroid Build Coastguard Worker  }
84*8975f5c5SAndroid Build Coastguard Worker}
85*8975f5c5SAndroid Build Coastguard Worker
86*8975f5c5SAndroid Build Coastguard Workerios_toolchain("ios_clang_x64") {
87*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
88*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "x64"
89*8975f5c5SAndroid Build Coastguard Worker  }
90*8975f5c5SAndroid Build Coastguard Worker}
91*8975f5c5SAndroid Build Coastguard Worker
92*8975f5c5SAndroid Build Coastguard Workerios_toolchain("ios_clang_x64_16_0") {
93*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
94*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "x64"
95*8975f5c5SAndroid Build Coastguard Worker    ios_deployment_target = "16.0"
96*8975f5c5SAndroid Build Coastguard Worker  }
97*8975f5c5SAndroid Build Coastguard Worker}
98*8975f5c5SAndroid Build Coastguard Worker
99*8975f5c5SAndroid Build Coastguard Workerios_app_ext_toolchain("ios_clang_arm64_app_ext") {
100*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
101*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
102*8975f5c5SAndroid Build Coastguard Worker  }
103*8975f5c5SAndroid Build Coastguard Worker}
104*8975f5c5SAndroid Build Coastguard Worker
105*8975f5c5SAndroid Build Coastguard Workerios_blink_app_ext_toolchain("ios_clang_arm64_blink_app_ext") {
106*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
107*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
108*8975f5c5SAndroid Build Coastguard Worker    use_blink = true
109*8975f5c5SAndroid Build Coastguard Worker  }
110*8975f5c5SAndroid Build Coastguard Worker}
111*8975f5c5SAndroid Build Coastguard Worker
112*8975f5c5SAndroid Build Coastguard Workerios_blink_app_ext_toolchain("ios_clang_x64_blink_app_ext") {
113*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
114*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "x64"
115*8975f5c5SAndroid Build Coastguard Worker    use_blink = true
116*8975f5c5SAndroid Build Coastguard Worker  }
117*8975f5c5SAndroid Build Coastguard Worker}
118*8975f5c5SAndroid Build Coastguard Worker
119*8975f5c5SAndroid Build Coastguard Workerios_app_ext_toolchain("ios_clang_arm64_app_ext_13_4") {
120*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
121*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
122*8975f5c5SAndroid Build Coastguard Worker    ios_deployment_target = "13.4"
123*8975f5c5SAndroid Build Coastguard Worker  }
124*8975f5c5SAndroid Build Coastguard Worker}
125*8975f5c5SAndroid Build Coastguard Worker
126*8975f5c5SAndroid Build Coastguard Workerios_app_ext_toolchain("ios_clang_x64_app_ext") {
127*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
128*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "x64"
129*8975f5c5SAndroid Build Coastguard Worker  }
130*8975f5c5SAndroid Build Coastguard Worker}
131*8975f5c5SAndroid Build Coastguard Worker
132*8975f5c5SAndroid Build Coastguard Workerios_app_ext_toolchain("ios_clang_x64_app_ext_13_4") {
133*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
134*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "x64"
135*8975f5c5SAndroid Build Coastguard Worker    ios_deployment_target = "13.4"
136*8975f5c5SAndroid Build Coastguard Worker  }
137*8975f5c5SAndroid Build Coastguard Worker}
138*8975f5c5SAndroid Build Coastguard Worker
139*8975f5c5SAndroid Build Coastguard Workerios_toolchain("ios_clang_arm64_blink") {
140*8975f5c5SAndroid Build Coastguard Worker  toolchain_args = {
141*8975f5c5SAndroid Build Coastguard Worker    current_cpu = "arm64"
142*8975f5c5SAndroid Build Coastguard Worker    use_blink = true
143*8975f5c5SAndroid Build Coastguard Worker  }
144*8975f5c5SAndroid Build Coastguard Worker}
145