aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/environment.py
diff options
context:
space:
mode:
authorFabio Porcedda <fabio.porcedda@gmail.com>2017-02-17 16:35:03 +0100
committerFabio Porcedda <fabio.porcedda@gmail.com>2017-02-17 17:11:17 +0100
commit16d4c466fc39d1331e4c9b48d0af7602772faa50 (patch)
treef020e94bb2f430c095d3936523dc6f831b8dfcf5 /mesonbuild/environment.py
parentaa7f496144f69fdda4bfaa3cb9f5136c171a15b8 (diff)
downloadmeson-16d4c466fc39d1331e4c9b48d0af7602772faa50.zip
meson-16d4c466fc39d1331e4c9b48d0af7602772faa50.tar.gz
meson-16d4c466fc39d1331e4c9b48d0af7602772faa50.tar.bz2
detect_c_compiler(): support extra commands and arguments in the string
- Hanlde correctly a multi command string in evironment variable, e.g.: CC="ccache gcc" meson - Handle correctly a list for the cross-file option, e.g: [binaries] c = ['ccache', '/usr/local/bin/mips-linuc-gcc'] This commit fixes #1392.
Diffstat (limited to 'mesonbuild/environment.py')
-rw-r--r--mesonbuild/environment.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 47ab918..a7d1750 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -349,7 +349,9 @@ class Environment:
def detect_c_compiler(self, want_cross):
evar = 'CC'
if self.is_cross_build() and want_cross:
- compilers = [self.cross_info.config['binaries']['c']]
+ compilers = self.cross_info.config['binaries']['c']
+ if not isinstance(compilers, list):
+ compilers = [compilers]
ccache = []
is_cross = True
if self.cross_info.need_exe_wrapper():
@@ -386,13 +388,13 @@ class Environment:
continue
gtype = self.get_gnu_compiler_type(defines)
version = self.get_gnu_version_from_defines(defines)
- return GnuCCompiler(ccache + [compiler], version, gtype, is_cross, exe_wrap, defines)
+ return GnuCCompiler(ccache + compilers, version, gtype, is_cross, exe_wrap, defines)
if 'clang' in out:
if 'Apple' in out or for_darwin(want_cross, self):
cltype = CLANG_OSX
else:
cltype = CLANG_STANDARD
- return ClangCCompiler(ccache + [compiler], version, cltype, is_cross, exe_wrap)
+ return ClangCCompiler(ccache + compilers, version, cltype, is_cross, exe_wrap)
if 'Microsoft' in out or 'Microsoft' in err:
# Visual Studio prints version number to stderr but
# everything else to stdout. Why? Lord only knows.
@@ -401,7 +403,7 @@ class Environment:
if '(ICC)' in out:
# TODO: add microsoft add check OSX
inteltype = ICC_STANDARD
- return IntelCCompiler(ccache + [compiler], version, inteltype, is_cross, exe_wrap)
+ return IntelCCompiler(ccache + compilers, version, inteltype, is_cross, exe_wrap)
errmsg = 'Unknown compiler(s): "' + ', '.join(compilers) + '"'
if popen_exceptions:
errmsg += '\nThe follow exceptions were encountered:'