1diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py
2index 407ead0..8bf64e7 100644
3--- a/tools/gyp/pylib/gyp/xcode_emulation.py
4+++ b/tools/gyp/pylib/gyp/xcode_emulation.py
5@@ -446,10 +446,16 @@ class XcodeSettings(object):
6
7 def _XcodeSdkPath(self, sdk_root):
8 if sdk_root not in XcodeSettings._sdk_path_cache:
9- sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path')
10- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path
11- if sdk_root:
12- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root
13+ try:
14+ sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path')
15+ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path
16+ if sdk_root:
17+ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root
18+ except:
19+ # if this fails it's because xcodebuild failed, which means
20+ # the user is probably on a CLT-only system, where there
21+ # is no valid SDK root
22+ XcodeSettings._sdk_path_cache[sdk_root] = None
23 return XcodeSettings._sdk_path_cache[sdk_root]
24
25 def _AppendPlatformVersionMinFlags(self, lst):
26@@ -572,10 +578,11 @@ class XcodeSettings(object):
27 framework_root = sdk_root
28 else:
29 framework_root = ''
30- config = self.spec['configurations'][self.configname]
31- framework_dirs = config.get('mac_framework_dirs', [])
32- for directory in framework_dirs:
33- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root))
34+ if 'SDKROOT' in self._Settings():
35+ config = self.spec['configurations'][self.configname]
36+ framework_dirs = config.get('mac_framework_dirs', [])
37+ for directory in framework_dirs:
38+ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root))
39
40 self.configname = None
41 return cflags
42@@ -826,10 +833,11 @@ class XcodeSettings(object):
43 sdk_root = self._SdkPath()
44 if not sdk_root:
45 sdk_root = ''
46- config = self.spec['configurations'][self.configname]
47- framework_dirs = config.get('mac_framework_dirs', [])
48- for directory in framework_dirs:
49- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
50+ if 'SDKROOT' in self._Settings():
51+ config = self.spec['configurations'][self.configname]
52+ framework_dirs = config.get('mac_framework_dirs', [])
53+ for directory in framework_dirs:
54+ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root))
55
56 is_extension = self._IsIosAppExtension() or self._IsIosWatchKitExtension()
57 if sdk_root and is_extension: