blob: 6c3cd0ce907ab07b78d2720c1e1db229d2824874 [file] [log] [blame]
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/toolchain/rbe.gni")
assert(host_os == "mac")
# Common args across all Apple platforms.
declare_args() {
# The MACOSX_DEPLOYMENT_TARGET variable used when compiling.
# Must be of the form x.x.x for Info.plist files.
mac_deployment_target = ""
# Path to the host Xcode toolchain (XcodeDefault.xctoolchain).
mac_host_toolchain_path = ""
# Path to the macOS platform.
mac_platform_path = ""
# Path to a specific version of the macOS SDK, not including a backslash at
# the end.
mac_sdk_path = ""
mac_swift_lib_paths = []
# Version of iOS that we're targeting for tests.
mac_testing_deployment_target = "14.0"
# Path to the iOS platform to use.
#
# When empty, this will use the default platform based on the value of
# use_ios_simulator.
ios_platform_path = ""
# Path to the iOS SDK to use.
#
# When empty this will use the default SDK based on the value of
# use_ios_simulator.
ios_sdk_path = ""
# Set to true when targeting a simulator build on iOS. False means that the
# target is for running on the device. The default value is to use the
# Simulator except when targeting GYP's Xcode builds (for compat with the
# existing GYP build).
use_ios_simulator = true
# Alias for use_ios_simulator used by Skia.
ios_use_simulator = true
# Version of iOS that we're targeting.
ios_deployment_target = "13.0"
# The path to the iOS device platform.
ios_device_platform_path = ""
# The path to the iOS simulator platform.
ios_simulator_platform_path = ""
# The path to the iOS device SDK.
ios_device_sdk_path = ""
# The path to the iOS simulator SDK.
ios_simulator_sdk_path = ""
# The path to iOS SDK Swift libraries.
ios_swift_lib_paths = []
# Version of iOS that we're targeting for tests.
ios_testing_deployment_target = "13.0"
}
if (target_os == "ios" || target_os == "macos") {
# Must be set above or by gn.
assert(mac_deployment_target != "")
assert(defined(use_ios_simulator))
assert(defined(ios_use_simulator))
assert(ios_deployment_target != "")
assert(ios_testing_deployment_target != "")
}
# Run darwin_sdk.py to determine SDK paths if necessary.
_need_darwin_sdk_run = false
if (mac_host_toolchain_path == "" || #
mac_sdk_path == "" || #
mac_platform_path == "") {
_need_darwin_sdk_run = true
}
if (is_ios) {
if (use_ios_simulator &&
(ios_simulator_platform_path == "" || ios_simulator_sdk_path == "")) {
_need_darwin_sdk_run = true
}
if (!use_ios_simulator &&
(ios_device_platform_path == "" || ios_device_sdk_path == "")) {
_need_darwin_sdk_run = true
}
}
if (_need_darwin_sdk_run) {
_args = [ "--print-paths" ]
if (use_rbe && create_xcode_symlinks) {
# RBE has a restriction that paths cannot come from outside the build root.
_args += [
"--symlink",
rebase_path("//flutter/prebuilts"),
]
}
_sdk_result =
exec_script(rebase_path("//build/mac/darwin_sdk.py"), _args, "scope")
}
# Set SDK paths.
if (mac_host_toolchain_path == "") {
mac_host_toolchain_path = _sdk_result.toolchain_path
}
assert(mac_host_toolchain_path != "")
if (mac_sdk_path == "") {
mac_sdk_path = _sdk_result.macosx_sdk_path
}
assert(mac_sdk_path != "")
if (mac_platform_path == "") {
mac_platform_path = _sdk_result.macosx_platform_path
}
assert(mac_platform_path != "")
if (mac_swift_lib_paths == []) {
mac_swift_lib_paths += [
rebase_path("$mac_sdk_path/usr/lib/swift"),
rebase_path("$mac_host_toolchain_path/usr/lib/swift/macosx"),
]
}
if (is_ios) {
if (ios_platform_path == "" || ios_sdk_path == "") {
if (use_ios_simulator) {
if (ios_simulator_platform_path == "") {
ios_simulator_platform_path = _sdk_result.iphonesimulator_platform_path
}
if (ios_simulator_sdk_path == "") {
ios_simulator_sdk_path = _sdk_result.iphonesimulator_sdk_path
}
} else {
if (ios_device_platform_path == "") {
ios_device_platform_path = _sdk_result.iphoneos_platform_path
}
if (ios_device_sdk_path == "") {
ios_device_sdk_path = _sdk_result.iphoneos_sdk_path
}
}
if (use_ios_simulator) {
assert(ios_simulator_platform_path != "")
assert(ios_simulator_sdk_path != "")
ios_platform_path = ios_simulator_platform_path
ios_sdk_path = ios_simulator_sdk_path
} else {
assert(ios_device_platform_path != "")
assert(ios_device_sdk_path != "")
ios_platform_path = ios_device_platform_path
ios_sdk_path = ios_device_sdk_path
}
}
if (ios_swift_lib_paths == []) {
ios_swift_lib_paths += [ rebase_path("$ios_sdk_path/usr/lib/swift") ]
if (use_ios_simulator) {
ios_swift_lib_paths += [ rebase_path(
"$mac_host_toolchain_path/usr/lib/swift/iphonesimulator") ]
} else {
ios_swift_lib_paths +=
[ rebase_path("$mac_host_toolchain_path/usr/lib/swift/iphoneos") ]
}
}
}