# 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") ] } } }