diff options
Diffstat (limited to 'pkgs/development/web/nodejs/no-xcode.patch')
-rw-r--r-- | pkgs/development/web/nodejs/no-xcode.patch | 99 |
1 files changed, 57 insertions, 42 deletions
diff --git a/pkgs/development/web/nodejs/no-xcode.patch b/pkgs/development/web/nodejs/no-xcode.patch index 47a37bfaf3c..e88168b68a7 100644 --- a/pkgs/development/web/nodejs/no-xcode.patch +++ b/pkgs/development/web/nodejs/no-xcode.patch @@ -1,78 +1,93 @@ -diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py -index 806f92b..5256856 100644 ---- a/tools/gyp/pylib/gyp/xcode_emulation.py -+++ b/tools/gyp/pylib/gyp/xcode_emulation.py -@@ -224,8 +224,7 @@ class XcodeSettings(object): +diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py +--- a/tools/gyp/pylib/gyp/xcode_emulation.py 2014-01-23 06:05:51.000000000 +0100 ++++ b/tools/gyp/pylib/gyp/xcode_emulation.py 2014-02-04 17:49:48.000000000 +0100 +@@ -302,10 +302,17 @@ - def _GetSdkVersionInfoItem(self, sdk, infoitem): - job = subprocess.Popen(['xcodebuild', '-version', '-sdk', sdk, infoitem], -- stdout=subprocess.PIPE, -- stderr=subprocess.STDOUT) -+ stdout=subprocess.PIPE) - out = job.communicate()[0] - if job.returncode != 0: - sys.stderr.write(out + '\n') -@@ -234,9 +233,17 @@ class XcodeSettings(object): - - def _SdkPath(self): - sdk_root = self.GetPerTargetSetting('SDKROOT', default='macosx') -+ if sdk_root.startswith('/'): -+ return sdk_root + def _XcodeSdkPath(self, sdk_root): if sdk_root not in XcodeSettings._sdk_path_cache: -- XcodeSettings._sdk_path_cache[sdk_root] = self._GetSdkVersionInfoItem( -- sdk_root, 'Path') +- sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') +- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path +- if sdk_root: +- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root + try: -+ XcodeSettings._sdk_path_cache[sdk_root] = self._GetSdkVersionInfoItem( -+ sdk_root, 'Path') ++ sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') ++ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path ++ if sdk_root: ++ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root + except: + # if this fails it's because xcodebuild failed, which means + # the user is probably on a CLT-only system, where there + # is no valid SDK root + XcodeSettings._sdk_path_cache[sdk_root] = None ++ return XcodeSettings._sdk_path_cache[sdk_root] def _AppendPlatformVersionMinFlags(self, lst): -@@ -339,10 +346,11 @@ class XcodeSettings(object): - - cflags += self._Settings().get('WARNING_CFLAGS', []) - +@@ -420,10 +427,12 @@ + framework_root = sdk_root + else: + framework_root = '' - config = self.spec['configurations'][self.configname] - framework_dirs = config.get('mac_framework_dirs', []) - for directory in framework_dirs: -- cflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) +- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) ++ + if 'SDKROOT' in self._Settings(): + config = self.spec['configurations'][self.configname] + framework_dirs = config.get('mac_framework_dirs', []) + for directory in framework_dirs: -+ cflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) ++ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) self.configname = None return cflags -@@ -572,10 +580,11 @@ class XcodeSettings(object): - for rpath in self._Settings().get('LD_RUNPATH_SEARCH_PATHS', []): - ldflags.append('-Wl,-rpath,' + rpath) - +@@ -673,10 +682,12 @@ + sdk_root = self._SdkPath() + if not sdk_root: + sdk_root = '' - config = self.spec['configurations'][self.configname] - framework_dirs = config.get('mac_framework_dirs', []) - for directory in framework_dirs: -- ldflags.append('-F' + directory.replace('$(SDKROOT)', self._SdkPath())) +- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) ++ + if 'SDKROOT' in self._Settings(): + config = self.spec['configurations'][self.configname] + framework_dirs = config.get('mac_framework_dirs', []) + for directory in framework_dirs: -+ ldflags.append('-F' + directory.replace('$(SDKROOT)', self._SdkPath())) ++ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) self.configname = None return ldflags -@@ -700,7 +709,10 @@ class XcodeSettings(object): - l = '-l' + m.group(1) - else: - l = library -- return l.replace('$(SDKROOT)', self._SdkPath()) +@@ -863,7 +874,11 @@ + sdk_root = self._SdkPath(config_name) + if not sdk_root: + sdk_root = '' +- return l.replace('$(SDKROOT)', sdk_root) ++ + if self._SdkPath(): -+ return l.replace('$(SDKROOT)', self._SdkPath()) ++ return l.replace('$(SDKROOT)', sdk_root) + else: + return l - def AdjustLibraries(self, libraries): + def AdjustLibraries(self, libraries, config_name=None): """Transforms entries like 'Cocoa.framework' in libraries into entries like +@@ -1018,12 +1033,16 @@ + # Since the value returned by this function is only used when ARCHS is not + # set, then on iOS we return "i386", as the default xcode project generator + # does not set ARCHS if it is not set in the .gyp file. +- if self.isIOS: ++ ++ try: ++ if self.isIOS: ++ return 'i386' ++ version, build = self._XcodeVersion() ++ if version >= '0500': ++ return 'x86_64' + return 'i386' +- version, build = self._XcodeVersion() +- if version >= '0500': ++ except: + return 'x86_64' +- return 'i386' + + class MacPrefixHeader(object): + """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature. |