aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorjuj <jujjyl@gmail.com>2014-04-10 00:38:55 +0300
committerjuj <jujjyl@gmail.com>2014-04-10 00:38:55 +0300
commite52c99365d82dd3a51c49302ba4af1115432e3d5 (patch)
tree67a3455d6afb67fb958a8d51236edc01297fbb56 /tools
parent158e8c4ac12f8a602a70a5d371a48d079758a1de (diff)
parentb239fb1ed3d91bd98ddafa1bfd6af6a57daa32ca (diff)
Merge pull request #2279 from juj/test_bad_triple
Fix other.test_bad_triple.
Diffstat (limited to 'tools')
-rw-r--r--tools/shared.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/shared.py b/tools/shared.py
index 5425d2c1..e912a700 100644
--- a/tools/shared.py
+++ b/tools/shared.py
@@ -495,6 +495,30 @@ def build_clang_tool_path(tool):
else:
return os.path.join(LLVM_ROOT, tool)
+# Whenever building a native executable for OSX, we must provide the OSX SDK version we want to target.
+def osx_find_native_sdk_path():
+ try:
+ sdk_root = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs'
+ sdks = os.walk(sdk_root).next()[1]
+ sdk_path = os.path.join(sdk_root, sdks[0]) # Just pick first one found, we don't care which one we found.
+ logging.debug('Targeting OSX SDK found at ' + sdk_path)
+ return sdk_path
+ except:
+ logging.warning('Could not find native OSX SDK path to target!')
+ return None
+
+# These extra args need to be passed to Clang when targeting a native host system executable
+CACHED_CLANG_NATIVE_ARGS=None
+def get_clang_native_args():
+ global CACHED_CLANG_NATIVE_ARGS
+ if CACHED_CLANG_NATIVE_ARGS is not None: return CACHED_CLANG_NATIVE_ARGS
+ CACHED_CLANG_NATIVE_ARGS = []
+ if sys.platform == 'darwin':
+ sdk_path = osx_find_native_sdk_path()
+ if sdk_path:
+ CACHED_CLANG_NATIVE_ARGS = ['-isysroot', osx_find_native_sdk_path()]
+ return CACHED_CLANG_NATIVE_ARGS
+
CLANG_CC=os.path.expanduser(build_clang_tool_path('clang'))
CLANG_CPP=os.path.expanduser(build_clang_tool_path('clang++'))
CLANG=CLANG_CPP