# Copyright 2015 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/config.gni") import("//build/config/ios/ios_sdk_overrides.gni") import("//build/toolchain/goma.gni") import("//build/toolchain/rbe.gni") import("//build/toolchain/toolchain.gni") import("//build_overrides/build.gni") assert(current_os == "ios") assert(use_system_xcode, "Hermetic xcode doesn't work for ios.") declare_args() { # SDK path to use. When empty this will use the default SDK based on the # value of target_environment. ios_bin_path = "" ios_sdk_path = "" ios_sdk_name = "" ios_sdk_version = "" ios_sdk_platform = "" ios_sdk_platform_path = "" ios_toolchains_path = "" xcode_version = "" xcode_version_int = 0 xcode_build = "" machine_os_build = "" # Set DEVELOPER_DIR while running sdk_info.py. ios_sdk_developer_dir = "" # Control whether codesiging is enabled (ignored for simulator builds). ios_enable_code_signing = true # Explicitly select the identity to use for codesigning. If defined, must # be set to a non-empty string that will be passed to codesigning. Can be # left unspecified if ios_code_signing_identity_description is used instead. ios_code_signing_identity = "" # Pattern used to select the identity to use for codesigning. If defined, # must be a substring of the description of exactly one of the identities by # `security find-identity -v -p codesigning`. ios_code_signing_identity_description = "Apple Development" # Prefix for CFBundleIdentifier property of iOS bundles (correspond to the # "Organization Identifier" in Xcode). Code signing will fail if no mobile # provisioning for the selected code signing identify support that prefix. ios_app_bundle_id_prefix = "org.chromium.ost" # Paths to the mobileprovision files for the chosen code signing # identity description and app bundle id prefix. ios_mobileprovision_files = [] # Set to true if all test apps should use the same bundle id. ios_use_shared_bundle_id_for_test_apps = true } # If codesigning is enabled, use must configure either a codesigning identity # or a filter to automatically select the codesigning identity. if (target_environment == "device" && ios_enable_code_signing) { assert(ios_code_signing_identity == "" || ios_code_signing_identity_description == "", "You should either specify the precise identity to use with " + "ios_code_signing_identity or let the code select an identity " + "automatically (via find_signing_identity.py which use the " + "variable ios_code_signing_identity_description to set the " + "pattern to match the identity to use).") } if (ios_sdk_path == "") { # Compute default target. if (target_environment == "simulator") { ios_sdk_name = "iphonesimulator" ios_sdk_platform = "iPhoneSimulator" } else if (target_environment == "device") { ios_sdk_name = "iphoneos" ios_sdk_platform = "iPhoneOS" } else if (target_environment == "catalyst") { ios_sdk_name = "macosx" ios_sdk_platform = "MacOSX" } else { assert(false, "unsupported environment: $target_environment") } ios_sdk_info_args = [ "--get_sdk_info", "--get_machine_info", ] ios_sdk_info_args += [ ios_sdk_name ] if (ios_sdk_developer_dir != "") { ios_sdk_info_args += [ "--developer_dir", ios_sdk_developer_dir, ] } if (use_system_xcode && (use_goma || use_remoteexec)) { ios_sdk_info_args += [ "--create_symlink_at", "sdk/xcode_links", "--root_build_dir", root_build_dir, ] } script_name = "//build/config/apple/sdk_info.py" _ios_sdk_result = exec_script(script_name, ios_sdk_info_args, "scope") ios_bin_path = rebase_path("${_ios_sdk_result.toolchains_path}/usr/bin/", root_build_dir) ios_sdk_path = _ios_sdk_result.sdk_path ios_sdk_platform_path = _ios_sdk_result.sdk_platform_path ios_sdk_version = _ios_sdk_result.sdk_version ios_sdk_build = _ios_sdk_result.sdk_build ios_toolchains_path = _ios_sdk_result.toolchains_path xcode_version = _ios_sdk_result.xcode_version xcode_version_int = _ios_sdk_result.xcode_version_int xcode_build = _ios_sdk_result.xcode_build machine_os_build = _ios_sdk_result.machine_os_build if (target_environment == "simulator") { # This is weird, but Xcode sets DTPlatformBuild to an empty field for # simulator builds. ios_platform_build = "" } else { ios_platform_build = ios_sdk_build } } if (target_environment == "device" && ios_enable_code_signing) { # Automatically select a codesigning identity if no identity is configured. # This only applies to device build as simulator builds are not signed. if (ios_code_signing_identity == "") { find_signing_identity_args = [] if (ios_code_signing_identity_description != "") { find_signing_identity_args = [ "--matching-pattern", ios_code_signing_identity_description, ] } ios_code_signing_identity = exec_script("find_signing_identity.py", find_signing_identity_args, "trim string") } } if (ios_use_shared_bundle_id_for_test_apps) { shared_bundle_id_for_test_apps = "$ios_app_bundle_id_prefix.chrome.unittests.dev" }