aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormakise-homura <akemi_homura@kurisa.ch>2020-01-13 17:11:20 +0300
committerNirbheek Chauhan <nirbheek@centricular.com>2020-02-17 23:43:22 +0530
commit891ccba5df3bfc58f79ba66cbd15bd2574854aa1 (patch)
treef47e36d7ea5e5014aa857cbc606d0b15d0522ec3
parentd0ae4ba7e925c9896a73c715c85192f1e8227f85 (diff)
downloadmeson-891ccba5df3bfc58f79ba66cbd15bd2574854aa1.zip
meson-891ccba5df3bfc58f79ba66cbd15bd2574854aa1.tar.gz
meson-891ccba5df3bfc58f79ba66cbd15bd2574854aa1.tar.bz2
Fix missing 'defines' argumet for Elbrus compiler
...But somehow it still remains in C++ compiler.
-rw-r--r--mesonbuild/compilers/c.py6
-rw-r--r--mesonbuild/compilers/cpp.py2
-rw-r--r--mesonbuild/compilers/fortran.py2
-rw-r--r--mesonbuild/compilers/mixins/elbrus.py2
-rw-r--r--mesonbuild/environment.py15
5 files changed, 17 insertions, 10 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index d9d81d6..10114fa 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -231,10 +231,10 @@ class PGICCompiler(PGICompiler, CCompiler):
class ElbrusCCompiler(GnuCCompiler, ElbrusCompiler):
def __init__(self, exelist, version, for_machine: MachineChoice,
- is_cross, info: 'MachineInfo', exe_wrapper=None, defines=None, **kwargs):
+ is_cross, info: 'MachineInfo', exe_wrapper=None, **kwargs):
GnuCCompiler.__init__(self, exelist, version, for_machine, is_cross,
- info, exe_wrapper, defines, **kwargs)
- ElbrusCompiler.__init__(self, defines)
+ info, exe_wrapper, **kwargs)
+ ElbrusCompiler.__init__(self)
# It does support some various ISO standards and c/gnu 90, 9x, 1x in addition to those which GNU CC supports.
def get_options(self):
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index a09c611..2ed969a 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -325,7 +325,7 @@ class ElbrusCPPCompiler(GnuCPPCompiler, ElbrusCompiler):
GnuCPPCompiler.__init__(self, exelist, version, for_machine,
is_cross, info, exe_wrapper, defines,
**kwargs)
- ElbrusCompiler.__init__(self, defines)
+ ElbrusCompiler.__init__(self)
# It does not support c++/gnu++ 17 and 1z, but still does support 0x, 1y, and gnu++98.
def get_options(self):
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 73a8e24..a83c17f 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -215,7 +215,7 @@ class ElbrusFortranCompiler(GnuFortranCompiler, ElbrusCompiler):
GnuFortranCompiler.__init__(self, exelist, version, for_machine,
is_cross, info, exe_wrapper, defines,
**kwargs)
- ElbrusCompiler.__init__(self, defines)
+ ElbrusCompiler.__init__(self)
class G95FortranCompiler(FortranCompiler):
diff --git a/mesonbuild/compilers/mixins/elbrus.py b/mesonbuild/compilers/mixins/elbrus.py
index 87bf52a..1420474 100644
--- a/mesonbuild/compilers/mixins/elbrus.py
+++ b/mesonbuild/compilers/mixins/elbrus.py
@@ -29,7 +29,7 @@ if T.TYPE_CHECKING:
class ElbrusCompiler(GnuLikeCompiler):
# 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, defines: T.Dict[str, str]):
+ def __init__(self):
super().__init__()
self.id = 'lcc'
self.base_options = ['b_pgo', 'b_coverage',
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 58c9e99..da670f3 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -939,10 +939,17 @@ class Environment:
cls = GnuCCompiler if lang == 'c' else GnuCPPCompiler
linker = self._guess_nix_linker(compiler, cls, for_machine)
- return cls(
- ccache + compiler, version, for_machine, is_cross,
- info, exe_wrap, defines, full_version=full_version,
- linker=linker)
+
+ if lang == 'c': # There's no 'defines' anymore in C Compiler classes.
+ return cls(
+ ccache + compiler, version, for_machine, is_cross,
+ info, exe_wrap, full_version=full_version,
+ linker=linker)
+ else:
+ return cls(
+ ccache + compiler, version, for_machine, is_cross,
+ info, exe_wrap, defines, full_version=full_version,
+ linker=linker)
if 'Emscripten' in out:
cls = EmscriptenCCompiler if lang == 'c' else EmscriptenCPPCompiler