|
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 clang, clangxx, mingw, msvc |
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