at 18.03-beta 3.5 kB view raw
1diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py 2index a173ff0..1fc821a 100644 3--- a/tools/gyp/pylib/gyp/xcode_emulation.py 4+++ b/tools/gyp/pylib/gyp/xcode_emulation.py 5@@ -507,9 +507,12 @@ class XcodeSettings(object): 6 def _XcodePlatformPath(self, configname=None): 7 sdk_root = self._SdkRoot(configname) 8 if sdk_root not in XcodeSettings._platform_path_cache: 9- platform_path = self._GetSdkVersionInfoItem(sdk_root, 10+ try: 11+ platform_path = self._GetSdkVersionInfoItem(sdk_root, 12 '--show-sdk-platform-path') 13- XcodeSettings._platform_path_cache[sdk_root] = platform_path 14+ XcodeSettings._platform_path_cache[sdk_root] = platform_path 15+ except: 16+ XcodeSettings._platform_path_cache[sdk_root] = None 17 return XcodeSettings._platform_path_cache[sdk_root] 18 19 def _SdkPath(self, configname=None): 20@@ -520,10 +523,13 @@ class XcodeSettings(object): 21 22 def _XcodeSdkPath(self, sdk_root): 23 if sdk_root not in XcodeSettings._sdk_path_cache: 24- sdk_path = self._GetSdkVersionInfoItem(sdk_root, '--show-sdk-path') 25- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path 26- if sdk_root: 27- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root 28+ try: 29+ sdk_path = self._GetSdkVersionInfoItem(sdk_root, '--show-sdk-path') 30+ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path 31+ if sdk_root: 32+ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root 33+ except: 34+ XcodeSettings._sdk_path_cache[sdk_root] = None 35 return XcodeSettings._sdk_path_cache[sdk_root] 36 37 def _AppendPlatformVersionMinFlags(self, lst): 38@@ -653,10 +659,11 @@ class XcodeSettings(object): 39 framework_root = sdk_root 40 else: 41 framework_root = '' 42- config = self.spec['configurations'][self.configname] 43- framework_dirs = config.get('mac_framework_dirs', []) 44- for directory in framework_dirs: 45- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) 46+ if 'SDKROOT' in self._Settings(): 47+ config = self.spec['configurations'][self.configname] 48+ framework_dirs = config.get('mac_framework_dirs', []) 49+ for directory in framework_dirs: 50+ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) 51 52 self.configname = None 53 return cflags 54@@ -908,10 +915,11 @@ class XcodeSettings(object): 55 sdk_root = self._SdkPath() 56 if not sdk_root: 57 sdk_root = '' 58- config = self.spec['configurations'][self.configname] 59- framework_dirs = config.get('mac_framework_dirs', []) 60- for directory in framework_dirs: 61- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) 62+ if 'SDKROOT' in self._Settings(): 63+ config = self.spec['configurations'][self.configname] 64+ framework_dirs = config.get('mac_framework_dirs', []) 65+ for directory in framework_dirs: 66+ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) 67 68 platform_root = self._XcodePlatformPath(configname) 69 if sdk_root and platform_root and self._IsXCTest(): 70@@ -1683,6 +1691,9 @@ def _NormalizeEnvVarReferences(str): 71 """Takes a string containing variable references in the form ${FOO}, $(FOO), 72 or $FOO, and returns a string with all variable references in the form ${FOO}. 73 """ 74+ if str is None: 75+ return '' 76+ 77 # $FOO -> ${FOO} 78 str = re.sub(r'\$([a-zA-Z_][a-zA-Z0-9_]*)', r'${\1}', str) 79