summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-02-14 16:44:59 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2018-02-14 16:44:59 (GMT)
commit4685be01723dd4ef4917217e8aff25e92a55f1a5 (patch)
treeeaa531ea1982603d84149fb0c3c0521b622beb6b /src/engine/SCons
parent2b4d15d103e31f1ac8d7d8f7e19115e5387300b6 (diff)
downloadSCons-4685be01723dd4ef4917217e8aff25e92a55f1a5.zip
SCons-4685be01723dd4ef4917217e8aff25e92a55f1a5.tar.gz
SCons-4685be01723dd4ef4917217e8aff25e92a55f1a5.tar.bz2
Update default paths for clang compilers. This should hopefully fix some appveyor failures.
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Tool/clang.py5
-rw-r--r--src/engine/SCons/Tool/clang/__init__.py16
-rw-r--r--src/engine/SCons/Tool/clangxx.py4
3 files changed, 23 insertions, 2 deletions
diff --git a/src/engine/SCons/Tool/clang.py b/src/engine/SCons/Tool/clang.py
index a6bae43..aba5598 100644
--- a/src/engine/SCons/Tool/clang.py
+++ b/src/engine/SCons/Tool/clang.py
@@ -45,6 +45,8 @@ import sys
import SCons.Util
import SCons.Tool.cc
+from SCons.Tool.clang import get_clang_install_dirs
+
compilers = ['clang']
@@ -54,7 +56,7 @@ def generate(env):
if env['PLATFORM'] == 'win32':
# Ensure that we have a proper path for clang
- clang = SCons.Tool.find_program_path(env, compilers[0], default_paths=[r'C:\Program Files\LLVM\bin',])
+ clang = SCons.Tool.find_program_path(env, compilers[0], default_paths=get_clang_install_dirs(env['PLATFORM']))
if clang:
clang_bin_dir = os.path.dirname(clang)
env.AppendENVPath('PATH', clang_bin_dir)
@@ -64,6 +66,7 @@ def generate(env):
env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
else:
env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC')
+
# determine compiler version
if env['CC']:
#pipe = SCons.Action._subproc(env, [env['CC'], '-dumpversion'],
diff --git a/src/engine/SCons/Tool/clang/__init__.py b/src/engine/SCons/Tool/clang/__init__.py
new file mode 100644
index 0000000..775ba80
--- /dev/null
+++ b/src/engine/SCons/Tool/clang/__init__.py
@@ -0,0 +1,16 @@
+"""
+Common routines and data for clang tools
+"""
+
+clang_win32_dirs = [
+ r'C:\Program Files\LLVM\bin',
+ r'C:\cygwin64\bin',
+ r'C:\msys64',
+ r'C:\cygwin\bin',
+ r'C:\msys',
+]
+
+def get_clang_install_dirs(platform):
+ if platform == 'win32':
+ return clang_win32_dirs
+ else return [] \ No newline at end of file
diff --git a/src/engine/SCons/Tool/clangxx.py b/src/engine/SCons/Tool/clangxx.py
index 63f1b0d..2bf4cf4 100644
--- a/src/engine/SCons/Tool/clangxx.py
+++ b/src/engine/SCons/Tool/clangxx.py
@@ -46,6 +46,8 @@ import sys
import SCons.Tool
import SCons.Util
import SCons.Tool.cxx
+from SCons.Tool.clang import get_clang_install_dirs
+
compilers = ['clang++']
@@ -68,7 +70,7 @@ def generate(env):
env['SHOBJSUFFIX'] = '.pic.o'
elif env['PLATFORM'] == 'win32':
# Ensure that we have a proper path for clang++
- clangxx = SCons.Tool.find_program_path(env, compilers[0], default_paths=[r'C:\Program Files\LLVM\bin',])
+ clangxx = SCons.Tool.find_program_path(env, compilers[0], default_paths=get_clang_install_dirs(env['PLATFORM']))
if clangxx:
clangxx_bin_dir = os.path.dirname(clangxx)
env.AppendENVPath('PATH', clangxx_bin_dir)