| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| declare_args() { |
| # The minimum runtime iOS version that built products are expected to run |
| # on. If empty, the toolchain will choose its own default, typically the |
| # most recent OS version. |
| ios_deployment_target = "12.0" |
| |
| # SDK path to use. When empty this will use the default SDK based on the |
| # value of use_ios_simulator. |
| ios_sdk_path = "" |
| |
| # 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" |
| |
| # The iOS Code signing identity to use |
| ios_enable_code_signing = true |
| ios_code_signing_identity = "" |
| ios_code_signing_identity_description = "iPhone Developer" |
| } |
| |
| use_ios_simulator = current_cpu == "x86" || current_cpu == "x64" |
| |
| if (ios_sdk_path == "") { |
| # Compute default target. |
| if (use_ios_simulator) { |
| ios_sdk_name = "iphonesimulator" |
| ios_sdk_platform = "iPhoneSimulator" |
| } else { |
| ios_sdk_name = "iphoneos" |
| ios_sdk_platform = "iPhoneOS" |
| } |
| |
| ios_sdk_info_args = [ "--get_sdk_info" ] |
| ios_sdk_info_args += [ ios_sdk_name ] |
| _ios_sdk_result = exec_script("sdk_info.py", ios_sdk_info_args, "scope") |
| ios_sdk_path = _ios_sdk_result.sdk_path |
| ios_sdk_version = _ios_sdk_result.sdk_version |
| ios_sdk_platform_path = _ios_sdk_result.sdk_platform_path |
| ios_sdk_build = _ios_sdk_result.sdk_build |
| 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 (use_ios_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 (ios_enable_code_signing && !use_ios_simulator) { |
| find_signing_identity_args = [ |
| "--identity-description", |
| ios_code_signing_identity_description, |
| ] |
| |
| # If an identity is not provided, look for one on the host |
| if (ios_code_signing_identity == "") { |
| _ios_identities = exec_script("find_signing_identity.py", |
| find_signing_identity_args, |
| "list lines") |
| if (_ios_identities == []) { |
| print("Automatic code signing identity selection was enabled but could") |
| print("not find exactly one code signing identity matching") |
| print("$ios_code_signing_identity_description. Check that your keychain") |
| print("is accessible and that there is a valid code signing identity") |
| print("listed by `xcrun security find-identity -v -p codesigning`") |
| print("TIP: Simulator builds don't require code signing...") |
| assert(false) |
| } else { |
| _ios_identities_len = 0 |
| foreach(_, _ios_identities) { |
| _ios_identities_len += 1 |
| } |
| |
| ios_code_signing_identity = _ios_identities[0] |
| if (_ios_identities_len != 1) { |
| print("Warning: Multiple codesigning identities match " + |
| "\"$ios_code_signing_identity_description\"") |
| foreach(_ios_identity, _ios_identities) { |
| _selected = "" |
| if (ios_code_signing_identity == _ios_identity) { |
| _selected = " (selected)" |
| } |
| print("Warning: - $_ios_identity$_selected") |
| } |
| print("Warning: Please use either ios_code_signing_identity or ") |
| print("Warning: ios_code_signing_identity_description variable to ") |
| print("Warning: control which identity is selected.") |
| print() |
| } |
| } |
| } |
| } |