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