From f15a57f31a43441210d89aa5dc0a6e0bac777a60 Mon Sep 17 00:00:00 2001 From: Alexis Jeandet Date: Wed, 1 Nov 2017 14:52:50 +0100 Subject: Fix detection of include dirs with gnu compiler and non C locale Auto detection was based on parsing gcc's output so we have to ensure that it is always 'C'. Signed-off-by: Alexis Jeandet --- mesonbuild/compilers/compilers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 3f088b0..813719b 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -923,11 +923,14 @@ def get_largefile_args(compiler): def gnulike_default_include_dirs(compiler, lang): if lang == 'cpp': lang = 'c++' + env = os.environ.copy() + env["LC_ALL"] = 'C' p = subprocess.Popen( compiler + ['-x{}'.format(lang), '-E', '-v', '-'], stdin=subprocess.DEVNULL, stderr=subprocess.PIPE, - stdout=subprocess.PIPE + stdout=subprocess.PIPE, + env=env ) stderr = p.stderr.read().decode('utf-8') parse_state = 0 -- cgit v1.1 From dfab58772fea93552aca341f774ab44805853a0d Mon Sep 17 00:00:00 2001 From: Alexis Jeandet Date: Thu, 2 Nov 2017 12:16:14 +0100 Subject: Warn when no inc dir is found from parsing GNU compiler output Signed-off-by: Alexis Jeandet --- mesonbuild/compilers/compilers.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 813719b..bacf478 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -925,8 +925,9 @@ def gnulike_default_include_dirs(compiler, lang): lang = 'c++' env = os.environ.copy() env["LC_ALL"] = 'C' + cmd = compiler + ['-x{}'.format(lang), '-E', '-v', '-'] p = subprocess.Popen( - compiler + ['-x{}'.format(lang), '-E', '-v', '-'], + cmd, stdin=subprocess.DEVNULL, stderr=subprocess.PIPE, stdout=subprocess.PIPE, @@ -949,6 +950,8 @@ def gnulike_default_include_dirs(compiler, lang): break else: paths.append(line[1:]) + if len(paths) == 0: + mlog.warning('No include directory found parsing "{cmd}" output'.format(cmd=" ".join(cmd))) return paths class GnuCompiler: -- cgit v1.1