From 7cc41baa98e486d6fd08ca5bb6f336481b757c4a Mon Sep 17 00:00:00 2001 From: makise-homura Date: Mon, 19 Mar 2018 23:30:00 +0300 Subject: Added Elbrus lcc compilers support as inheritance from gcc ones --- mesonbuild/compilers/compilers.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 034fef4..0ab9b49 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1076,6 +1076,17 @@ class GnuCompiler: return gnulike_default_include_dirs(self.exelist, self.language) +class ElbrusCompiler(GnuCompiler): + # Elbrus compiler is nearly like GCC, but does not support + # PCH, LTO, sanitizers and color output as of version 1.21.x. + def __init__(self, gcc_type, defines): + GnuCompiler.__init__(self, gcc_type, defines) + self.id = 'lcc' + self.base_options = ['b_pgo', 'b_coverage', + 'b_ndebug', 'b_staticpic', + 'b_lundef', 'b_asneeded' ] + + class ClangCompiler: def __init__(self, clang_type): self.id = 'clang' -- cgit v1.1 From 6230c2a2f61f29cdf92017d7b5a06420f0730114 Mon Sep 17 00:00:00 2001 From: makise-homura Date: Mon, 19 Mar 2018 23:39:06 +0300 Subject: Fixed indentation and space issues found by SideCI --- mesonbuild/compilers/compilers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 0ab9b49..2e64131 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1084,7 +1084,7 @@ class ElbrusCompiler(GnuCompiler): self.id = 'lcc' self.base_options = ['b_pgo', 'b_coverage', 'b_ndebug', 'b_staticpic', - 'b_lundef', 'b_asneeded' ] + 'b_lundef', 'b_asneeded'] class ClangCompiler: -- cgit v1.1 From 08bd07f860081b9545ca4ef4eb7f9684e298f5a6 Mon Sep 17 00:00:00 2001 From: makise-homura Date: Tue, 20 Mar 2018 16:25:08 +0300 Subject: Added specific get_library_dirs function for lcc --- mesonbuild/compilers/compilers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 2e64131..2e6ed7e 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1086,6 +1086,18 @@ class ElbrusCompiler(GnuCompiler): 'b_ndebug', 'b_staticpic', 'b_lundef', 'b_asneeded'] + def get_library_dirs(self): + env = os.environ.copy() + env['LC_ALL'] = 'C' + stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=env)[1] + for line in stdo.split('\n'): + if line.startswith('libraries:'): + # lcc does not include '=' in --print-search-dirs output. + libstr = line.split(' ', 1)[1] + return libstr.split(':') + return [] + + class ClangCompiler: def __init__(self, clang_type): -- cgit v1.1 From 3b254c6e49a406235a2c82efa3698bacb0995a35 Mon Sep 17 00:00:00 2001 From: makise-homura Date: Tue, 20 Mar 2018 17:03:32 +0300 Subject: Fixed failure if compiler messages is not in UTF-8 For example, Elbrus lcc does output in KOI8-R, if LC_ALL=C, and there is no English counterpart for original Russian message. --- mesonbuild/compilers/compilers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mesonbuild/compilers/compilers.py') diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 2e6ed7e..c072bb6 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -971,7 +971,7 @@ def gnulike_default_include_dirs(compiler, lang): stdout=subprocess.PIPE, env=env ) - stderr = p.stderr.read().decode('utf-8') + stderr = p.stderr.read().decode('utf-8', errors='replace') parse_state = 0 paths = [] for line in stderr.split('\n'): -- cgit v1.1