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