|
3 | 3 |
|
4 | 4 | import common_compiler_flags
|
5 | 5 | import my_spawn
|
6 |
| -from SCons.Tool import mingw, msvc |
| 6 | +from SCons.Tool import mingw, msvc, clangxx, clang |
7 | 7 | from SCons.Variables import BoolVariable
|
8 | 8 |
|
9 | 9 |
|
@@ -73,14 +73,17 @@ def spawn_capture(sh, escape, cmd, args, env):
|
73 | 73 |
|
74 | 74 |
|
75 | 75 | def options(opts):
|
76 |
| - mingw = os.getenv("MINGW_PREFIX", "") |
| 76 | + msystem = os.getenv("MSYSTEM", "") |
| 77 | + mingw_prefix="" |
| 78 | + if not msystem: |
| 79 | + mingw_prefix = os.getenv("MINGW_PREFIX", "") |
77 | 80 |
|
78 | 81 | opts.Add(BoolVariable("use_mingw", "Use the MinGW compiler instead of MSVC - only effective on Windows", False))
|
79 | 82 | opts.Add(BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True))
|
80 | 83 | opts.Add(BoolVariable("silence_msvc", "Silence MSVC's cl/link stdout bloat, redirecting errors to stderr.", True))
|
81 | 84 | opts.Add(BoolVariable("debug_crt", "Compile with MSVC's debug CRT (/MDd)", False))
|
82 | 85 | opts.Add(BoolVariable("use_llvm", "Use the LLVM compiler (MVSC or MinGW depending on the use_mingw flag)", False))
|
83 |
| - opts.Add("mingw_prefix", "MinGW prefix", mingw) |
| 86 | + opts.Add("mingw_prefix", "MinGW prefix", mingw_prefix) |
84 | 87 |
|
85 | 88 |
|
86 | 89 | def exists(env):
|
@@ -132,7 +135,12 @@ def generate(env):
|
132 | 135 |
|
133 | 136 | elif (sys.platform == "win32" or sys.platform == "msys") and not env["mingw_prefix"]:
|
134 | 137 | env["use_mingw"] = True
|
135 |
| - mingw.generate(env) |
| 138 | + if env["use_llvm"]: |
| 139 | + clang.generate(env) |
| 140 | + clangxx.generate(env) |
| 141 | + else: |
| 142 | + mingw.generate(env) |
| 143 | + |
136 | 144 | # Don't want lib prefixes
|
137 | 145 | env["IMPLIBPREFIX"] = ""
|
138 | 146 | env["SHLIBPREFIX"] = ""
|
|
0 commit comments