# Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/ios/ios_sdk.gni") import("//build/toolchain/apple/toolchain.gni") # Specialisation of the apple_toolchain template to declare the toolchain # and its tools to build target for iOS platform. template("ios_toolchain") { assert(defined(invoker.toolchain_args), "Toolchains must declare toolchain_args") apple_toolchain(target_name) { forward_variables_from(invoker, "*", [ "toolchain_args" ]) sdk_developer_dir = ios_sdk_developer_dir deployment_target = ios_deployment_target target_environment = target_environment bin_path = ios_bin_path toolchain_args = { forward_variables_from(invoker.toolchain_args, "*") xcode_build = xcode_build current_os = "ios" } } } # Specialisation of the ios_toolchain template to declare the toolchain # and its tools to build application extension for iOS platform. template("ios_app_ext_toolchain") { assert(defined(invoker.toolchain_args), "Toolchains must declare toolchain_args") ios_toolchain(target_name) { forward_variables_from(invoker, "*", [ "toolchain_args" ]) toolchain_args = { forward_variables_from(invoker.toolchain_args, "*") ios_is_app_extension = true # Those variables are defined outside of //build and thus only exists # when used as part of Chromium. Use build_with_chromium to check if # they can be overridden safely. This prevents breaking third-party # projects such as WebRTC that only uses //build but not //base. if (build_with_chromium) { use_partition_alloc = false ios_partition_alloc_enabled = false } } } } # Specialisation of the ios_toolchain template to declare the toolchain # and its tools to build application extension for iOS platform. template("ios_blink_app_ext_toolchain") { assert(defined(invoker.toolchain_args), "Toolchains must declare toolchain_args") ios_toolchain(target_name) { forward_variables_from(invoker, "*", [ "toolchain_args" ]) toolchain_args = { forward_variables_from(invoker.toolchain_args, "*") ios_is_app_extension = true } } } ios_toolchain("ios_clang_arm64") { toolchain_args = { current_cpu = "arm64" } } ios_toolchain("ios_clang_arm64_16_0") { toolchain_args = { current_cpu = "arm64" ios_deployment_target = "16.0" } } ios_toolchain("ios_clang_x64") { toolchain_args = { current_cpu = "x64" } } ios_toolchain("ios_clang_x64_16_0") { toolchain_args = { current_cpu = "x64" ios_deployment_target = "16.0" } } ios_app_ext_toolchain("ios_clang_arm64_app_ext") { toolchain_args = { current_cpu = "arm64" } } ios_blink_app_ext_toolchain("ios_clang_arm64_blink_app_ext") { toolchain_args = { current_cpu = "arm64" use_blink = true } } ios_blink_app_ext_toolchain("ios_clang_x64_blink_app_ext") { toolchain_args = { current_cpu = "x64" use_blink = true } } ios_app_ext_toolchain("ios_clang_arm64_app_ext_13_4") { toolchain_args = { current_cpu = "arm64" ios_deployment_target = "13.4" } } ios_app_ext_toolchain("ios_clang_x64_app_ext") { toolchain_args = { current_cpu = "x64" } } ios_app_ext_toolchain("ios_clang_x64_app_ext_13_4") { toolchain_args = { current_cpu = "x64" ios_deployment_target = "13.4" } } ios_toolchain("ios_clang_arm64_blink") { toolchain_args = { current_cpu = "arm64" use_blink = true } }