chore: fix compilation with XCode 10 (#14800)
* chore: fix compilation with XCode 10 * update chromium commit ref
This commit is contained in:
parent
442f05dfe7
commit
c73a6906f6
2 changed files with 96 additions and 0 deletions
|
@ -459,3 +459,13 @@ patches:
|
||||||
author: Jeremy Apthorp <jeremya@chromium.org>
|
author: Jeremy Apthorp <jeremya@chromium.org>
|
||||||
file: backport_cd7154e0bb5.patch
|
file: backport_cd7154e0bb5.patch
|
||||||
description: Support macosx 10.14 SDK
|
description: Support macosx 10.14 SDK
|
||||||
|
-
|
||||||
|
author: Shelley Vohr <shelley.vohr@gmail.com>
|
||||||
|
file: fix_xcode_ten.patch
|
||||||
|
description: |
|
||||||
|
Backports 27f9cbd8, a commit which does the following -
|
||||||
|
* Removes IDEBundleInjection.framework from egtests.
|
||||||
|
* Corrects the DTXcode generation function to handle leading '10'.
|
||||||
|
* Fixes a main_application_delegate SDK change
|
||||||
|
* Fixes a non-null SDK change in a net unittest.
|
||||||
|
This is needed for Electron to compile with XCode 10.0.
|
||||||
|
|
86
patches/common/chromium/fix_xcode_ten.patch
Normal file
86
patches/common/chromium/fix_xcode_ten.patch
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
diff --git a/build/config/ios/rules.gni b/build/config/ios/rules.gni
|
||||||
|
index df6033b..7fdc931 100644
|
||||||
|
--- a/build/config/ios/rules.gni
|
||||||
|
+++ b/build/config/ios/rules.gni
|
||||||
|
@@ -1805,10 +1805,15 @@
|
||||||
|
# Xcode needs those two framework installed in the application (and signed)
|
||||||
|
# for the XCTest to run, so install them using extra_system_frameworks.
|
||||||
|
_ios_platform_library = "$ios_sdk_platform_path/Developer/Library"
|
||||||
|
- extra_system_frameworks = [
|
||||||
|
- "$_ios_platform_library/Frameworks/XCTest.framework",
|
||||||
|
- "$_ios_platform_library/PrivateFrameworks/IDEBundleInjection.framework",
|
||||||
|
- ]
|
||||||
|
+ extra_system_frameworks =
|
||||||
|
+ [ "$_ios_platform_library/Frameworks/XCTest.framework" ]
|
||||||
|
+
|
||||||
|
+ # TODO: Remove this once support for Xcode 9.x is dropped.
|
||||||
|
+ if (xcode_version_int < 1000) {
|
||||||
|
+ extra_system_frameworks += [
|
||||||
|
+ "$_ios_platform_library/PrivateFrameworks/IDEBundleInjection.framework",
|
||||||
|
+ ]
|
||||||
|
+ }
|
||||||
|
|
||||||
|
_xctest_bundle = _xctest_target + "_bundle"
|
||||||
|
if (current_toolchain == default_toolchain) {
|
||||||
|
diff --git a/build/config/mac/sdk_info.py b/build/config/mac/sdk_info.py
|
||||||
|
index 8a9edc1..46dcec8 100644
|
||||||
|
--- a/build/config/mac/sdk_info.py
|
||||||
|
+++ b/build/config/mac/sdk_info.py
|
||||||
|
@@ -3,6 +3,8 @@
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
+import doctest
|
||||||
|
+import itertools
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
@@ -10,16 +12,32 @@
|
||||||
|
# This script prints information about the build system, the operating
|
||||||
|
# system and the iOS or Mac SDK (depending on the platform "iphonesimulator",
|
||||||
|
# "iphoneos" or "macosx" generally).
|
||||||
|
-#
|
||||||
|
-# In the GYP build, this is done inside GYP itself based on the SDKROOT
|
||||||
|
-# variable.
|
||||||
|
+
|
||||||
|
+def SplitVersion(version):
|
||||||
|
+ """Splits the Xcode version to 3 values.
|
||||||
|
+
|
||||||
|
+ >>> list(SplitVersion('8.2.1.1'))
|
||||||
|
+ ['8', '2', '1']
|
||||||
|
+ >>> list(SplitVersion('9.3'))
|
||||||
|
+ ['9', '3', '0']
|
||||||
|
+ >>> list(SplitVersion('10.0'))
|
||||||
|
+ ['10', '0', '0']
|
||||||
|
+ """
|
||||||
|
+ version = version.split('.')
|
||||||
|
+ return itertools.islice(itertools.chain(version, itertools.repeat('0')), 0, 3)
|
||||||
|
|
||||||
|
def FormatVersion(version):
|
||||||
|
- """Converts Xcode version to a format required for Info.plist."""
|
||||||
|
- version = version.replace('.', '')
|
||||||
|
- version = version + '0' * (3 - len(version))
|
||||||
|
- return version.zfill(4)
|
||||||
|
+ """Converts Xcode version to a format required for DTXcode in Info.plist
|
||||||
|
|
||||||
|
+ >>> FormatVersion('8.2.1')
|
||||||
|
+ '0821'
|
||||||
|
+ >>> FormatVersion('9.3')
|
||||||
|
+ '0930'
|
||||||
|
+ >>> FormatVersion('10.0')
|
||||||
|
+ '1000'
|
||||||
|
+ """
|
||||||
|
+ major, minor, patch = SplitVersion(version)
|
||||||
|
+ return ('%2s%s%s' % (major, minor, patch)).replace(' ', '0')
|
||||||
|
|
||||||
|
def FillXcodeVersion(settings):
|
||||||
|
"""Fills the Xcode version and build number into |settings|."""
|
||||||
|
@@ -53,6 +71,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
+ doctest.testmod()
|
||||||
|
+
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("--developer_dir", required=False)
|
||||||
|
args, unknownargs = parser.parse_known_args()
|
Loading…
Reference in a new issue