aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/c.py16
-rw-r--r--mesonbuild/compilers/compilers.py6
-rw-r--r--mesonbuild/compilers/cpp.py16
-rw-r--r--mesonbuild/compilers/cs.py4
-rw-r--r--mesonbuild/compilers/d.py16
-rw-r--r--mesonbuild/compilers/fortran.py36
6 files changed, 49 insertions, 45 deletions
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 44cd4b4..233fc84 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -42,11 +42,11 @@ from .compilers import (
class CCompiler(Compiler):
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwargs):
# If a child ObjC or CPP class has already set it, don't set it ourselves
if not hasattr(self, 'language'):
self.language = 'c'
- super().__init__(exelist, version)
+ super().__init__(exelist, version, **kwargs)
self.id = 'unknown'
self.is_cross = is_cross
self.can_compile_suffixes.add('h')
@@ -800,8 +800,8 @@ class CCompiler(Compiler):
class ClangCCompiler(ClangCompiler, CCompiler):
- def __init__(self, exelist, version, clang_type, is_cross, exe_wrapper=None):
- CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper)
+ def __init__(self, exelist, version, clang_type, is_cross, exe_wrapper=None, **kwargs):
+ CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
ClangCompiler.__init__(self, clang_type)
default_warn_args = ['-Wall', '-Winvalid-pch']
self.warn_args = {'1': default_warn_args,
@@ -832,8 +832,8 @@ class ClangCCompiler(ClangCompiler, CCompiler):
class GnuCCompiler(GnuCompiler, CCompiler):
- def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None, defines=None):
- CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper)
+ def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None, defines=None, **kwargs):
+ CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
GnuCompiler.__init__(self, gcc_type, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
self.warn_args = {'1': default_warn_args,
@@ -871,8 +871,8 @@ class GnuCCompiler(GnuCompiler, CCompiler):
class IntelCCompiler(IntelCompiler, CCompiler):
- def __init__(self, exelist, version, icc_type, is_cross, exe_wrapper=None):
- CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper)
+ def __init__(self, exelist, version, icc_type, is_cross, exe_wrapper=None, **kwargs):
+ CCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
IntelCompiler.__init__(self, icc_type)
self.lang_header = 'c-header'
default_warn_args = ['-Wall', '-w3', '-diag-disable:remark', '-Wpch-messages']
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 4079d0f..3d50eb0 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -597,7 +597,7 @@ class Compiler:
# compiler or the C library. Currently only used for MSVC.
ignore_libs = ()
- def __init__(self, exelist, version):
+ def __init__(self, exelist, version, **kwargs):
if isinstance(exelist, str):
self.exelist = [exelist]
elif isinstance(exelist, list):
@@ -611,6 +611,10 @@ class Compiler:
self.can_compile_suffixes = set(self.file_suffixes)
self.default_suffix = self.file_suffixes[0]
self.version = version
+ if 'full_version' in kwargs:
+ self.full_version = kwargs['full_version']
+ else:
+ self.full_version = None
self.base_options = []
def __repr__(self):
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index cb4b055..5e32ace 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -28,11 +28,11 @@ from .compilers import (
)
class CPPCompiler(CCompiler):
- def __init__(self, exelist, version, is_cross, exe_wrap):
+ def __init__(self, exelist, version, is_cross, exe_wrap, **kwargs):
# If a child ObjCPP class has already set it, don't set it ourselves
if not hasattr(self, 'language'):
self.language = 'cpp'
- CCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
+ CCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)
def get_display_language(self):
return 'C++'
@@ -66,8 +66,8 @@ class CPPCompiler(CCompiler):
class ClangCPPCompiler(ClangCompiler, CPPCompiler):
- def __init__(self, exelist, version, cltype, is_cross, exe_wrapper=None):
- CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrapper)
+ def __init__(self, exelist, version, cltype, is_cross, exe_wrapper=None, **kwargs):
+ CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwargs)
ClangCompiler.__init__(self, cltype)
default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
self.warn_args = {'1': default_warn_args,
@@ -92,8 +92,8 @@ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
class GnuCPPCompiler(GnuCompiler, CPPCompiler):
- def __init__(self, exelist, version, gcc_type, is_cross, exe_wrap, defines):
- CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
+ def __init__(self, exelist, version, gcc_type, is_cross, exe_wrap, defines, **kwargs):
+ CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)
GnuCompiler.__init__(self, gcc_type, defines)
default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
self.warn_args = {'1': default_warn_args,
@@ -133,8 +133,8 @@ class GnuCPPCompiler(GnuCompiler, CPPCompiler):
class IntelCPPCompiler(IntelCompiler, CPPCompiler):
- def __init__(self, exelist, version, icc_type, is_cross, exe_wrap):
- CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap)
+ def __init__(self, exelist, version, icc_type, is_cross, exe_wrap, **kwargs):
+ CPPCompiler.__init__(self, exelist, version, is_cross, exe_wrap, **kwargs)
IntelCompiler.__init__(self, icc_type)
self.lang_header = 'c++-header'
default_warn_args = ['-Wall', '-w3', '-diag-disable:remark',
diff --git a/mesonbuild/compilers/cs.py b/mesonbuild/compilers/cs.py
index b8a4d13..dd7a433 100644
--- a/mesonbuild/compilers/cs.py
+++ b/mesonbuild/compilers/cs.py
@@ -19,9 +19,9 @@ from ..mesonlib import EnvironmentException
from .compilers import Compiler, mono_buildtype_args
class MonoCompiler(Compiler):
- def __init__(self, exelist, version):
+ def __init__(self, exelist, version, **kwargs):
self.language = 'cs'
- super().__init__(exelist, version)
+ super().__init__(exelist, version, **kwargs)
self.id = 'mono'
self.monorunner = 'mono'
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index 9739f28..9681a9f 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -42,9 +42,9 @@ d_feature_args = {'gcc': {'unittest': '-funittest',
}
class DCompiler(Compiler):
- def __init__(self, exelist, version, is_cross):
+ def __init__(self, exelist, version, is_cross, **kwargs):
self.language = 'd'
- super().__init__(exelist, version)
+ super().__init__(exelist, version, **kwargs)
self.id = 'unknown'
self.is_cross = is_cross
@@ -224,8 +224,8 @@ class DCompiler(Compiler):
class GnuDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross):
- DCompiler.__init__(self, exelist, version, is_cross)
+ def __init__(self, exelist, version, is_cross, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
self.id = 'gcc'
default_warn_args = ['-Wall', '-Wdeprecated']
self.warn_args = {'1': default_warn_args,
@@ -267,8 +267,8 @@ class GnuDCompiler(DCompiler):
class LLVMDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross):
- DCompiler.__init__(self, exelist, version, is_cross)
+ def __init__(self, exelist, version, is_cross, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
self.id = 'llvm'
self.base_options = ['b_coverage', 'b_colorout']
@@ -321,8 +321,8 @@ class LLVMDCompiler(DCompiler):
class DmdDCompiler(DCompiler):
- def __init__(self, exelist, version, is_cross):
- DCompiler.__init__(self, exelist, version, is_cross)
+ def __init__(self, exelist, version, is_cross, **kwargs):
+ DCompiler.__init__(self, exelist, version, is_cross, **kwargs)
self.id = 'dmd'
self.base_options = ['b_coverage', 'b_colorout']
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 8deb8ea..1b42bfa 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -31,9 +31,9 @@ from .compilers import (
)
class FortranCompiler(Compiler):
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwargs):
self.language = 'fortran'
- super().__init__(exelist, version)
+ super().__init__(exelist, version, **kwargs)
self.is_cross = is_cross
self.exe_wrapper = exe_wrapper
# Not really correct but I don't have Fortran compilers to test with. Sorry.
@@ -149,8 +149,8 @@ end program prog
class GnuFortranCompiler(FortranCompiler):
- def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None, defines=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, gcc_type, is_cross, exe_wrapper=None, defines=None, **kwargs):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwargs)
self.gcc_type = gcc_type
self.defines = defines or {}
self.id = 'gcc'
@@ -181,8 +181,8 @@ class GnuFortranCompiler(FortranCompiler):
class G95FortranCompiler(FortranCompiler):
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'g95'
def get_module_outdir_args(self, path):
@@ -205,8 +205,8 @@ class G95FortranCompiler(FortranCompiler):
class SunFortranCompiler(FortranCompiler):
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'sun'
def get_dependency_gen_args(self, outtarget, outfile):
@@ -228,9 +228,9 @@ class SunFortranCompiler(FortranCompiler):
class IntelFortranCompiler(IntelCompiler, FortranCompiler):
std_warn_args = ['-warn', 'all']
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
self.file_suffixes = ('f90', 'f', 'for', 'ftn', 'fpp')
- FortranCompiler.__init__(self, exelist, version, is_cross, exe_wrapper)
+ FortranCompiler.__init__(self, exelist, version, is_cross, exe_wrapper, **kwags)
# FIXME: Add support for OS X and Windows in detect_fortran_compiler so
# we are sent the type of compiler
IntelCompiler.__init__(self, ICC_STANDARD)
@@ -246,8 +246,8 @@ class IntelFortranCompiler(IntelCompiler, FortranCompiler):
class PathScaleFortranCompiler(FortranCompiler):
std_warn_args = ['-fullwarn']
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'pathscale'
def get_module_outdir_args(self, path):
@@ -259,8 +259,8 @@ class PathScaleFortranCompiler(FortranCompiler):
class PGIFortranCompiler(FortranCompiler):
std_warn_args = ['-Minform=inform']
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'pgi'
def get_module_incdir_args(self):
@@ -279,8 +279,8 @@ class PGIFortranCompiler(FortranCompiler):
class Open64FortranCompiler(FortranCompiler):
std_warn_args = ['-fullwarn']
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'open64'
def get_module_outdir_args(self, path):
@@ -293,8 +293,8 @@ class Open64FortranCompiler(FortranCompiler):
class NAGFortranCompiler(FortranCompiler):
std_warn_args = []
- def __init__(self, exelist, version, is_cross, exe_wrapper=None):
- super().__init__(exelist, version, is_cross, exe_wrapper=None)
+ def __init__(self, exelist, version, is_cross, exe_wrapper=None, **kwags):
+ super().__init__(exelist, version, is_cross, exe_wrapper=None, **kwags)
self.id = 'nagfor'
def get_module_outdir_args(self, path):