blob: ed1b5f043e44ee525677cd38636da0db07478c23 [file] [log] [blame]
# 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()
}
}
}
}