e1494ddc47
* chore: cherry-pick c83640db21b5 from chromium * chore: update patches Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
122 lines
4.7 KiB
Diff
122 lines
4.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Attard <samuel.r.attard@gmail.com>
|
|
Date: Wed, 5 Oct 2022 06:03:23 +0000
|
|
Subject: build: set DTSDKBuild correctly when generating plist files
|
|
|
|
Currently we set DTSDKBuild to the version of the SDK used to build
|
|
Chromium. This value is supposed to be the build version (this is
|
|
what xcode sets it to for instance). We read this value out of the
|
|
SDK directly and use it instead.
|
|
|
|
Change-Id: Ieb7990f13095683ad8c026f027b2605ae39523a4
|
|
|
|
diff --git a/build/config/mac/mac_sdk.gni b/build/config/mac/mac_sdk.gni
|
|
index 98bedab98c2cd808387bca779221fab7297b37ee..d39350ed74d5c9493006266375664a9808e97af7 100644
|
|
--- a/build/config/mac/mac_sdk.gni
|
|
+++ b/build/config/mac/mac_sdk.gni
|
|
@@ -40,6 +40,11 @@ declare_args() {
|
|
# will fail.
|
|
mac_sdk_official_version = "12.3"
|
|
|
|
+ # The SDK build version used when making official builds. This is a single
|
|
+ # exact version found at "System/Library/CoreServices/SystemVersion.plist"
|
|
+ # inside the SDK.
|
|
+ mac_sdk_official_build_version = "21E226"
|
|
+
|
|
# Production builds should use hermetic Xcode. If you want to do production
|
|
# builds with system Xcode to test new SDKs, set this.
|
|
# Don't set this on any bots.
|
|
@@ -103,11 +108,13 @@ if (use_system_xcode) {
|
|
find_sdk_args = [
|
|
"--print_sdk_path",
|
|
"--print_bin_path",
|
|
+ "--print_sdk_build",
|
|
mac_sdk_min,
|
|
]
|
|
find_sdk_lines =
|
|
exec_script("//build/mac/find_sdk.py", find_sdk_args, "list lines")
|
|
- mac_sdk_version = find_sdk_lines[2]
|
|
+ mac_sdk_version = find_sdk_lines[3]
|
|
+ mac_sdk_build_version = find_sdk_lines[2]
|
|
if (mac_sdk_path == "") {
|
|
mac_sdk_path = find_sdk_lines[0]
|
|
mac_bin_path = find_sdk_lines[1]
|
|
@@ -116,6 +123,7 @@ if (use_system_xcode) {
|
|
}
|
|
} else {
|
|
mac_sdk_version = mac_sdk_official_version
|
|
+ mac_sdk_build_version = mac_sdk_official_build_version
|
|
_dev = _hermetic_xcode_path + "/Contents/Developer"
|
|
_sdk = "MacOSX${mac_sdk_version}.sdk"
|
|
mac_sdk_path = _dev + "/Platforms/MacOSX.platform/Developer/SDKs/$_sdk"
|
|
diff --git a/build/config/mac/rules.gni b/build/config/mac/rules.gni
|
|
index fbd84cc68bf6b19cf99d4010331bb469a1d33194..f613a049bdfa643d01b05e3cfcae72dc5ad9da97 100644
|
|
--- a/build/config/mac/rules.gni
|
|
+++ b/build/config/mac/rules.gni
|
|
@@ -41,7 +41,7 @@ template("mac_info_plist") {
|
|
apple_info_plist(target_name) {
|
|
format = "xml1"
|
|
extra_substitutions = [
|
|
- "MAC_SDK_BUILD=$mac_sdk_version",
|
|
+ "MAC_SDK_BUILD=$mac_sdk_build_version",
|
|
"MAC_SDK_NAME=$mac_sdk_name$mac_sdk_version",
|
|
"MACOSX_DEPLOYMENT_TARGET=$mac_deployment_target",
|
|
"CHROMIUM_MIN_SYSTEM_VERSION=$mac_min_system_version",
|
|
diff --git a/build/mac/find_sdk.py b/build/mac/find_sdk.py
|
|
index bb36874fd44d441d07c9f150288c1d21b215d550..50c1e3c1db90ede392ba6f7903fe48e8e5de2d77 100755
|
|
--- a/build/mac/find_sdk.py
|
|
+++ b/build/mac/find_sdk.py
|
|
@@ -24,6 +24,7 @@ Sample Output:
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
+import plistlib
|
|
import re
|
|
import subprocess
|
|
import sys
|
|
@@ -51,6 +52,9 @@ def main():
|
|
parser.add_option("--print_bin_path",
|
|
action="store_true", dest="print_bin_path", default=False,
|
|
help="Additionally print the path the toolchain bin dir.")
|
|
+ parser.add_option("--print_sdk_build",
|
|
+ action="store_true", dest="print_sdk_build", default=False,
|
|
+ help="Additionally print the build version of the SDK.")
|
|
options, args = parser.parse_args()
|
|
if len(args) != 1:
|
|
parser.error('Please specify a minimum SDK version')
|
|
@@ -80,20 +84,30 @@ def main():
|
|
if not sdks:
|
|
raise Exception('No %s+ SDK found' % min_sdk_version)
|
|
best_sdk = sorted(sdks, key=parse_version)[0]
|
|
+ sdk_name = 'MacOSX' + best_sdk + '.sdk'
|
|
+ sdk_path = os.path.join(sdk_dir, sdk_name)
|
|
|
|
if options.print_sdk_path:
|
|
- sdk_name = 'MacOSX' + best_sdk + '.sdk'
|
|
- print(os.path.join(sdk_dir, sdk_name))
|
|
+ print(sdk_path)
|
|
|
|
if options.print_bin_path:
|
|
bin_path = 'Toolchains/XcodeDefault.xctoolchain/usr/bin/'
|
|
print(os.path.join(dev_dir, bin_path))
|
|
|
|
- return best_sdk
|
|
+ if options.print_sdk_build:
|
|
+ system_version_plist = os.path.join(sdk_path,
|
|
+ 'System/Library/CoreServices/SystemVersion.plist')
|
|
+ with open(system_version_plist, 'rb') as f:
|
|
+ system_version_info = plistlib.load(f)
|
|
+ if 'ProductBuildVersion' not in system_version_info:
|
|
+ raise Exception('Failed to determine ProductBuildVersion' +
|
|
+ 'for SDK at path %s' % system_version_plist)
|
|
+ print(system_version_info['ProductBuildVersion'])
|
|
+
|
|
+ print(best_sdk)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if sys.platform != 'darwin':
|
|
raise Exception("This script only runs on Mac")
|
|
- print(main())
|
|
- sys.exit(0)
|
|
+ sys.exit(main())
|