# Copyright (c) 2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("$build_root/config/mac/mac_sdk_overrides.gni") import("$build_root/toolchain/toolchain.gni") declare_args() { mac_deployment_target = "10.13.0" mac_min_system_version = "10.13.0" # Path to a specific version of the Mac SDK, not including a slash at the end. # If empty, the path to the lowest version greater than or equal to # mac_sdk_min is used. mac_sdk_path = "" # The SDK name as accepted by xcodebuild. mac_sdk_name = "macosx" } # Check that the version of macOS SDK used is the one requested when building # a version of Chrome shipped to the users. Disable the check if building for # iOS as the version macOS SDK used is not relevant for the tool build for the # host (they are not shipped) --- this is required as Chrome on iOS is usually # build with the latest version of Xcode that may not ship with the version of # the macOS SDK used to build Chrome on mac. _verify_sdk = is_official_build && target_os != "ios" find_sdk_args = [ "--print_sdk_path" ] if (!use_system_xcode) { find_sdk_args += [ "--developer_dir", hermetic_xcode_path, ] } if (_verify_sdk) { find_sdk_args += [ "--verify", mac_sdk_min, "--sdk_path=" + mac_sdk_path, ] } else { find_sdk_args += [ mac_sdk_min ] } # The tool will print the SDK path on the first line, and the version on the # second line. find_sdk_lines = exec_script("$build_root/misc/mac/find_sdk.py", find_sdk_args, "list lines") mac_sdk_version = find_sdk_lines[1] if (mac_sdk_path == "") { mac_sdk_path = find_sdk_lines[0] } script_name = "$build_root/config/mac/sdk_info.py" sdk_info_args = [] if (!use_system_xcode) { sdk_info_args += [ "--developer_dir", hermetic_xcode_path, ] } sdk_info_args += [ mac_sdk_name ] _mac_sdk_result = exec_script(script_name, sdk_info_args, "scope") xcode_version = _mac_sdk_result.xcode_version xcode_build = _mac_sdk_result.xcode_build machine_os_build = _mac_sdk_result.machine_os_build xcode_version_int = _mac_sdk_result.xcode_version_int if (mac_sdk_version != mac_sdk_min && exec_script("$build_root/misc/mac/check_return_value.py", [ "test", xcode_version, "-ge", "0730", ], "value") != 1) { print( "********************************************************************************") print( " WARNING: The Mac OS X SDK is incompatible with the version of Xcode. To fix,") print( " either upgrade Xcode to the latest version or install the Mac OS X") print( " $mac_sdk_min SDK. For more information, see https://crbug.com/620127.") print() print(" Current SDK Version: $mac_sdk_version") print(" Current Xcode Version: $xcode_version ($xcode_build)") print( "********************************************************************************") assert(false, "SDK is incompatible with Xcode") }