summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r--mesonbuild/compilers/asm.py16
-rw-r--r--mesonbuild/compilers/c.py92
-rw-r--r--mesonbuild/compilers/compilers.py2
-rw-r--r--mesonbuild/compilers/cpp.py81
-rw-r--r--mesonbuild/compilers/cuda.py4
-rw-r--r--mesonbuild/compilers/d.py22
-rw-r--r--mesonbuild/compilers/detect.py122
-rw-r--r--mesonbuild/compilers/fortran.py63
-rw-r--r--mesonbuild/compilers/mixins/ti.py4
-rw-r--r--mesonbuild/compilers/objc.py12
-rw-r--r--mesonbuild/compilers/objcpp.py13
-rw-r--r--mesonbuild/compilers/rust.py12
-rw-r--r--mesonbuild/compilers/swift.py5
-rw-r--r--mesonbuild/compilers/vala.py4
14 files changed, 209 insertions, 243 deletions
diff --git a/mesonbuild/compilers/asm.py b/mesonbuild/compilers/asm.py
index 01915bc3e..54218eb0a 100644
--- a/mesonbuild/compilers/asm.py
+++ b/mesonbuild/compilers/asm.py
@@ -35,11 +35,11 @@ class ASMCompiler(Compiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str,
for_machine: MachineChoice, env: Environment,
linker: T.Optional[DynamicLinker] = None,
- full_version: T.Optional[str] = None, is_cross: bool = False):
+ full_version: T.Optional[str] = None):
info = env.machines[for_machine]
if self._SUPPORTED_ARCHES and info.cpu_family not in self._SUPPORTED_ARCHES:
raise EnvironmentException(f'ASM Compiler {self.id} does not support building for {info.cpu_family} CPU family.')
- super().__init__(ccache, exelist, version, for_machine, env, linker, full_version, is_cross)
+ super().__init__(ccache, exelist, version, for_machine, env, linker, full_version)
def sanity_check(self, work_dir: str, environment: Environment) -> None:
return None
@@ -63,8 +63,8 @@ class NasmCompiler(ASMCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str,
for_machine: 'MachineChoice', env: Environment,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None, is_cross: bool = False):
- super().__init__(ccache, exelist, version, for_machine, env, linker, full_version, is_cross)
+ full_version: T.Optional[str] = None):
+ super().__init__(ccache, exelist, version, for_machine, env, linker, full_version)
if isinstance(self.linker, VisualStudioLikeLinkerMixin):
self.base_options.add(OptionKey('b_vscrt'))
@@ -281,8 +281,8 @@ class TILinearAsmCompiler(TICompiler, ASMCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str,
for_machine: MachineChoice, env: Environment,
linker: T.Optional[DynamicLinker] = None,
- full_version: T.Optional[str] = None, is_cross: bool = False):
- ASMCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker, full_version, is_cross)
+ full_version: T.Optional[str] = None):
+ ASMCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker, full_version)
TICompiler.__init__(self)
def needs_static_linker(self) -> bool:
@@ -304,8 +304,8 @@ class MetrowerksAsmCompiler(MetrowerksCompiler, ASMCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str,
for_machine: 'MachineChoice', env: Environment,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None, is_cross: bool = False):
- ASMCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker, full_version, is_cross)
+ full_version: T.Optional[str] = None):
+ ASMCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker, full_version)
MetrowerksCompiler.__init__(self)
self.warn_args: T.Dict[str, T.List[str]] = {
diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 4f505852e..8dc17e0b1 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -63,12 +63,12 @@ class CCompiler(CLikeCompiler, Compiler):
language = 'c'
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
# If a child ObjC or CPP class has already set it, don't set it ourselves
Compiler.__init__(self, ccache, exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version, linker=linker)
+ full_version=full_version, linker=linker)
CLikeCompiler.__init__(self)
def get_no_stdinc_args(self) -> T.List[str]:
@@ -106,11 +106,11 @@ class CCompiler(CLikeCompiler, Compiler):
class ClangCCompiler(ClangCStds, ClangCompiler, CCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross, env, linker=linker, full_version=full_version)
+ CCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
self.warn_args = {'0': [],
@@ -176,17 +176,16 @@ class EmscriptenCCompiler(EmscriptenMixin, ClangCCompiler):
_C2X_VERSION = '>=1.38.35' # 1.38.35 used Clang 9.0.0
_C23_VERSION = '>=3.1.45' # 3.1.45 used Clang 18.0.0
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- if not is_cross:
+ if not env.is_cross_build(for_machine):
raise MesonException('Emscripten compiler can only be used for cross compilation.')
if not version_compare(version, '>=1.39.19'):
raise MesonException('Meson requires Emscripten >= 1.39.19')
- ClangCCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
- env, linker=linker,
- defines=defines, full_version=full_version)
+ ClangCCompiler.__init__(self, ccache, exelist, version, for_machine, env,
+ linker=linker, defines=defines, full_version=full_version)
class ArmclangCCompiler(ArmclangCompiler, CCompiler):
@@ -194,10 +193,10 @@ class ArmclangCCompiler(ArmclangCompiler, CCompiler):
Keil armclang
'''
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ArmclangCompiler.__init__(self)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -231,11 +230,11 @@ class GnuCCompiler(GnuCStds, GnuCompiler, CCompiler):
_INVALID_PCH_VERSION = ">=3.4.0"
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross, env, linker=linker, full_version=full_version)
+ CCompiler.__init__(self, ccache, exelist, version, for_machine, env, linker=linker, full_version=full_version)
GnuCompiler.__init__(self, defines)
default_warn_args = ['-Wall']
if version_compare(self.version, self._INVALID_PCH_VERSION):
@@ -284,10 +283,10 @@ class GnuCCompiler(GnuCStds, GnuCompiler, CCompiler):
class PGICCompiler(PGICompiler, CCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
@@ -296,10 +295,10 @@ class NvidiaHPC_CCompiler(PGICompiler, CCompiler):
id = 'nvidia_hpc'
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
@@ -313,11 +312,11 @@ class NvidiaHPC_CCompiler(PGICompiler, CCompiler):
class ElbrusCCompiler(ElbrusCompiler, CCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ElbrusCompiler.__init__(self)
@@ -353,10 +352,10 @@ class ElbrusCCompiler(ElbrusCompiler, CCompiler):
class IntelCCompiler(IntelGnuLikeCompiler, CCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
IntelGnuLikeCompiler.__init__(self)
self.lang_header = 'c-header'
@@ -420,10 +419,10 @@ class VisualStudioCCompiler(MSVCCompiler, VisualStudioLikeCCompilerMixin, CCompi
_C17_VERSION = '>=19.28'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MSVCCompiler.__init__(self, target)
@@ -454,10 +453,10 @@ class VisualStudioCCompiler(MSVCCompiler, VisualStudioLikeCCompilerMixin, CCompi
class ClangClCCompiler(ClangCStds, ClangClCompiler, VisualStudioLikeCCompilerMixin, CCompiler):
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, [], exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, [], exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ClangClCompiler.__init__(self, target)
@@ -474,12 +473,11 @@ class IntelClCCompiler(IntelVisualStudioLikeCompiler, VisualStudioLikeCCompilerM
"""Intel "ICL" compiler abstraction."""
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, [], exelist, version, for_machine, is_cross,
- env, linker=linker,
- full_version=full_version)
+ CCompiler.__init__(self, [], exelist, version, for_machine,
+ env, linker=linker, full_version=full_version)
IntelVisualStudioLikeCompiler.__init__(self, target)
def get_options(self) -> 'MutableKeyedOptionDictType':
@@ -508,10 +506,10 @@ class IntelLLVMClCCompiler(IntelClCCompiler):
class ArmCCompiler(ArmCompiler, CCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ArmCompiler.__init__(self)
@@ -534,10 +532,10 @@ class ArmCCompiler(ArmCompiler, CCompiler):
class CcrxCCompiler(CcrxCompiler, CCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
CcrxCompiler.__init__(self)
@@ -586,10 +584,10 @@ class CcrxCCompiler(CcrxCompiler, CCompiler):
class Xc16CCompiler(Xc16Compiler, CCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
Xc16Compiler.__init__(self)
@@ -635,21 +633,21 @@ class Xc32CCompiler(Xc32CStds, Xc32Compiler, GnuCCompiler):
"""Microchip XC32 C compiler."""
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional[DynamicLinker] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- GnuCCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ GnuCCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version, defines=defines)
Xc32Compiler.__init__(self)
class CompCertCCompiler(CompCertCompiler, CCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
CompCertCompiler.__init__(self)
@@ -677,10 +675,10 @@ class CompCertCCompiler(CompCertCompiler, CCompiler):
class TICCompiler(TICompiler, CCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
TICompiler.__init__(self)
@@ -718,10 +716,10 @@ class MetrowerksCCompilerARM(MetrowerksCompiler, CCompiler):
id = 'mwccarm'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MetrowerksCompiler.__init__(self)
@@ -746,10 +744,10 @@ class MetrowerksCCompilerEmbeddedPowerPC(MetrowerksCompiler, CCompiler):
id = 'mwcceppc'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MetrowerksCompiler.__init__(self)
@@ -773,9 +771,9 @@ class TaskingCCompiler(TaskingCompiler, CCompiler):
id = 'tasking'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
TaskingCompiler.__init__(self)
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 9ae48bfab..2d548a45d 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -474,7 +474,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str,
for_machine: MachineChoice, environment: Environment,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None, is_cross: bool = False):
+ full_version: T.Optional[str] = None):
self.exelist = ccache + exelist
self.exelist_no_ccache = exelist
self.file_suffixes = lang_suffixes[self.language]
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index d9facb721..f53004f61 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -66,13 +66,12 @@ class CPPCompiler(CLikeCompiler, Compiler):
language = 'cpp'
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
# If a child ObjCPP class has already set it, don't set it ourselves
Compiler.__init__(self, ccache, exelist, version, for_machine, env,
- is_cross=is_cross, linker=linker,
- full_version=full_version)
+ linker=linker, full_version=full_version)
CLikeCompiler.__init__(self)
@classmethod
@@ -219,11 +218,11 @@ class _StdCPPLibMixin(CompilerMixinBase):
class ClangCPPCompiler(_StdCPPLibMixin, ClangCPPStds, ClangCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -353,17 +352,16 @@ class EmscriptenCPPCompiler(EmscriptenMixin, ClangCPPCompiler):
_CPP23_VERSION = '>=2.0.10'
_CPP26_VERSION = '>=3.1.39'
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- if not is_cross:
+ if not env.is_cross_build(for_machine):
raise MesonException('Emscripten compiler can only be used for cross compilation.')
if not version_compare(version, '>=1.39.19'):
raise MesonException('Meson requires Emscripten >= 1.39.19')
- ClangCPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
- env, linker=linker,
- defines=defines, full_version=full_version)
+ ClangCPPCompiler.__init__(self, ccache, exelist, version, for_machine, env,
+ linker=linker, defines=defines, full_version=full_version)
def get_option_std_args(self, target: BuildTarget, env: Environment, subproject: T.Optional[str] = None) -> T.List[str]:
args: T.List[str] = []
@@ -379,10 +377,10 @@ class ArmclangCPPCompiler(ArmclangCompiler, CPPCompiler):
Keil armclang
'''
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ArmclangCompiler.__init__(self)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -426,11 +424,11 @@ class ArmclangCPPCompiler(ArmclangCompiler, CPPCompiler):
class GnuCPPCompiler(_StdCPPLibMixin, GnuCPPStds, GnuCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
GnuCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -541,10 +539,10 @@ class GnuCPPCompiler(_StdCPPLibMixin, GnuCPPStds, GnuCompiler, CPPCompiler):
class PGICPPCompiler(PGICompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
@@ -553,10 +551,10 @@ class NvidiaHPC_CPPCompiler(PGICompiler, CPPCompiler):
id = 'nvidia_hpc'
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
@@ -573,11 +571,11 @@ class NvidiaHPC_CPPCompiler(PGICompiler, CPPCompiler):
class ElbrusCPPCompiler(ElbrusCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ElbrusCompiler.__init__(self)
@@ -655,10 +653,10 @@ class ElbrusCPPCompiler(ElbrusCompiler, CPPCompiler):
class IntelCPPCompiler(IntelGnuLikeCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
IntelGnuLikeCompiler.__init__(self)
self.lang_header = 'c++-header'
@@ -874,10 +872,10 @@ class VisualStudioCPPCompiler(CPP11AsCPP14Mixin, VisualStudioLikeCPPCompilerMixi
id = 'msvc'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MSVCCompiler.__init__(self, target)
@@ -919,10 +917,10 @@ class ClangClCPPCompiler(CPP11AsCPP14Mixin, VisualStudioLikeCPPCompilerMixin, Cl
id = 'clang-cl'
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, [], exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, [], exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ClangClCompiler.__init__(self, target)
@@ -934,10 +932,10 @@ class ClangClCPPCompiler(CPP11AsCPP14Mixin, VisualStudioLikeCPPCompilerMixin, Cl
class IntelClCPPCompiler(VisualStudioLikeCPPCompilerMixin, IntelVisualStudioLikeCompiler, CPPCompiler):
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, [], exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, [], exelist, version, for_machine,
env, linker=linker, full_version=full_version)
IntelVisualStudioLikeCompiler.__init__(self, target)
@@ -962,10 +960,10 @@ class IntelLLVMClCPPCompiler(IntelClCPPCompiler):
class ArmCPPCompiler(ArmCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ArmCompiler.__init__(self)
@@ -994,10 +992,10 @@ class ArmCPPCompiler(ArmCompiler, CPPCompiler):
class CcrxCPPCompiler(CcrxCompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
CcrxCompiler.__init__(self)
@@ -1018,10 +1016,10 @@ class CcrxCPPCompiler(CcrxCompiler, CPPCompiler):
return []
class TICPPCompiler(TICompiler, CPPCompiler):
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
TICompiler.__init__(self)
@@ -1058,9 +1056,9 @@ class MetrowerksCPPCompilerARM(MetrowerksCompiler, CPPCompiler):
id = 'mwccarm'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, linker: T.Optional['DynamicLinker'] = None,
+ env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MetrowerksCompiler.__init__(self)
@@ -1085,10 +1083,9 @@ class MetrowerksCPPCompilerEmbeddedPowerPC(MetrowerksCompiler, CPPCompiler):
id = 'mwcceppc'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
- linker: T.Optional['DynamicLinker'] = None,
+ env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- CPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ CPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
MetrowerksCompiler.__init__(self)
@@ -1113,10 +1110,10 @@ class Xc32CPPCompiler(Xc32CPPStds, Xc32Compiler, GnuCPPCompiler):
"""Microchip XC32 C++ compiler."""
- def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional[DynamicLinker] = None,
defines: T.Optional[T.Dict[str, str]] = None,
full_version: T.Optional[str] = None):
- GnuCPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
- env, linker=linker, full_version=full_version, defines=defines)
+ GnuCPPCompiler.__init__(self, ccache, exelist, version, for_machine, env,
+ linker=linker, full_version=full_version, defines=defines)
Xc32Compiler.__init__(self)
diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py
index be92dfbc8..b13a1fdac 100644
--- a/mesonbuild/compilers/cuda.py
+++ b/mesonbuild/compilers/cuda.py
@@ -182,10 +182,10 @@ class CudaCompiler(Compiler):
id = 'nvcc'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, host_compiler: Compiler, env: Environment,
+ host_compiler: Compiler, env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- super().__init__(ccache, exelist, version, for_machine, env, linker=linker, full_version=full_version, is_cross=is_cross)
+ super().__init__(ccache, exelist, version, for_machine, env, linker=linker, full_version=full_version)
self.host_compiler = host_compiler
self.base_options = host_compiler.base_options
# -Wpedantic generates useless churn due to nvcc's dual compilation model producing
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index c37bb679a..ccafe291c 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -432,10 +432,9 @@ class DCompiler(Compiler):
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, arch: str, *,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None,
- is_cross: bool = False):
+ full_version: T.Optional[str] = None):
super().__init__([], exelist, version, for_machine, env, linker=linker,
- full_version=full_version, is_cross=is_cross)
+ full_version=full_version)
self.arch = arch
def sanity_check(self, work_dir: str, environment: 'Environment') -> None:
@@ -641,11 +640,9 @@ class GnuDCompiler(GnuCompiler, DCompiler):
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, arch: str, *,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None,
- is_cross: bool = False):
+ full_version: T.Optional[str] = None):
DCompiler.__init__(self, exelist, version, for_machine, env, arch,
- linker=linker,
- full_version=full_version, is_cross=is_cross)
+ linker=linker, full_version=full_version)
GnuCompiler.__init__(self, {})
default_warn_args = ['-Wall', '-Wdeprecated']
self.warn_args = {'0': [],
@@ -725,10 +722,9 @@ class LLVMDCompiler(DmdLikeCompilerMixin, DCompiler):
env: Environment, arch: str, *,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None,
- is_cross: bool = False, version_output: T.Optional[str] = None):
+ version_output: T.Optional[str] = None):
DCompiler.__init__(self, exelist, version, for_machine, env, arch,
- linker=linker,
- full_version=full_version, is_cross=is_cross)
+ linker=linker, full_version=full_version)
DmdLikeCompilerMixin.__init__(self, dmd_frontend_version=find_ldc_dmd_frontend_version(version_output))
self.base_options = {OptionKey(o) for o in ['b_coverage', 'b_colorout', 'b_vscrt', 'b_ndebug']}
@@ -787,11 +783,9 @@ class DmdDCompiler(DmdLikeCompilerMixin, DCompiler):
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, arch: str, *,
linker: T.Optional['DynamicLinker'] = None,
- full_version: T.Optional[str] = None,
- is_cross: bool = False):
+ full_version: T.Optional[str] = None):
DCompiler.__init__(self, exelist, version, for_machine, env, arch,
- linker=linker,
- full_version=full_version, is_cross=is_cross)
+ linker=linker, full_version=full_version)
DmdLikeCompilerMixin.__init__(self, version)
self.base_options = {OptionKey(o) for o in ['b_coverage', 'b_colorout', 'b_vscrt', 'b_ndebug']}
diff --git a/mesonbuild/compilers/detect.py b/mesonbuild/compilers/detect.py
index f1910df70..2a7944a81 100644
--- a/mesonbuild/compilers/detect.py
+++ b/mesonbuild/compilers/detect.py
@@ -284,7 +284,6 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
ccache = ccache_exe.get_command() if (ccache_exe and ccache_exe.found()) else []
if override_compiler is not None:
compilers = [override_compiler]
- is_cross = env.is_cross_build(for_machine)
cls: T.Union[T.Type[CCompiler], T.Type[CPPCompiler]]
lnk: T.Union[T.Type[StaticLinker], T.Type[DynamicLinker]]
@@ -371,7 +370,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross,
+ ccache, compiler, version, for_machine,
env, defines=defines, full_version=full_version,
linker=linker)
@@ -390,7 +389,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
compiler, for_machine, cls.LINKER_PREFIX,
[], version=search_version(o))
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
linker=linker, full_version=full_version)
if 'Arm C/C++/Fortran Compiler' in out:
@@ -403,7 +402,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
cls = cpp.ArmLtdClangCPPCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
linker=linker)
if 'armclang' in out:
# The compiler version is not present in the first line of output,
@@ -423,7 +422,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = linkers.ArmClangDynamicLinker(for_machine, version=version)
env.add_lang_args(cls.language, cls, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'CL.EXE COMPATIBILITY' in out:
# if this is clang-cl masquerading as cl, detect it as cl, not
@@ -442,7 +441,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
cls = c.ClangClCCompiler if lang == 'c' else cpp.ClangClCPPCompiler
linker = guess_win_linker(env, ['lld-link'], cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env, target,
+ compiler, version, for_machine, env, target,
linker=linker)
# must be detected here before clang because TI compilers contain 'clang' in their output and so that they can be detected as 'clang'
@@ -459,7 +458,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
env.add_lang_args(cls.language, cls, for_machine)
linker = lnk(compiler, for_machine, version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'clang' in out or 'Clang' in out:
@@ -486,7 +485,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
defines=defines, full_version=full_version, linker=linker)
if 'Intel(R) C++ Intel(R)' in err:
@@ -496,7 +495,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env, target,
+ compiler, version, for_machine, env, target,
linker=linker)
if 'Intel(R) oneAPI DPC++/C++ Compiler for applications' in err:
version = search_version(err)
@@ -505,7 +504,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env, target,
+ compiler, version, for_machine, env, target,
linker=linker)
if 'Microsoft' in out or 'Microsoft' in err:
# Latest versions of Visual Studio print version
@@ -532,47 +531,47 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
mlog.warning('Visual Studio support requires ccache 4.6 or higher. You have ccache {}. '.format(ccache_exe.get_version()), once=True)
ccache = []
return cls(
- ccache, compiler, version, for_machine, is_cross, env, target,
+ ccache, compiler, version, for_machine, env, target,
full_version=cl_signature, linker=linker)
if 'PGI Compilers' in out:
cls = c.PGICCompiler if lang == 'c' else cpp.PGICPPCompiler
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.PGIDynamicLinker(compiler, for_machine, cls.LINKER_PREFIX, [], version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross,
+ ccache, compiler, version, for_machine,
env, linker=linker)
if 'NVIDIA Compilers and Tools' in out:
cls = c.NvidiaHPC_CCompiler if lang == 'c' else cpp.NvidiaHPC_CPPCompiler
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.NvidiaHPC_DynamicLinker(compiler, for_machine, cls.LINKER_PREFIX, [], version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross,
+ ccache, compiler, version, for_machine,
env, linker=linker)
if '(ICC)' in out:
cls = c.IntelCCompiler if lang == 'c' else cpp.IntelCPPCompiler
l = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=l)
if 'Intel(R) oneAPI' in out:
cls = c.IntelLLVMCCompiler if lang == 'c' else cpp.IntelLLVMCPPCompiler
l = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=l)
if 'ARM' in out and not ('Metrowerks' in out or 'Freescale' in out):
cls = c.ArmCCompiler if lang == 'c' else cpp.ArmCPPCompiler
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.ArmDynamicLinker(for_machine, version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross,
+ ccache, compiler, version, for_machine,
env, full_version=full_version, linker=linker)
if 'RX Family' in out:
cls = c.CcrxCCompiler if lang == 'c' else cpp.CcrxCPPCompiler
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.CcrxDynamicLinker(for_machine, version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'Microchip' in out:
@@ -592,7 +591,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = linkers.Xc32DynamicLinker(compiler, for_machine, cls.LINKER_PREFIX, [], version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross,
+ ccache, compiler, version, for_machine,
env, defines=defines, full_version=full_version,
linker=linker)
else:
@@ -601,7 +600,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = linkers.Xc16DynamicLinker(for_machine, version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'CompCert' in out:
@@ -609,7 +608,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.CompCertDynamicLinker(for_machine, version=version)
return cls(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'Metrowerks C/C++' in out or 'Freescale C/C++' in out:
@@ -639,7 +638,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
raise EnvironmentException(f'Failed to detect linker for {cls.id!r} compiler. Please update your cross file(s).')
return cls(
- ccache, compiler, compiler_version, for_machine, is_cross, env,
+ ccache, compiler, compiler_version, for_machine, env,
full_version=full_version, linker=linker)
if 'TASKING VX-toolset' in err:
cls = c.TaskingCCompiler
@@ -656,7 +655,7 @@ def _detect_c_or_cpp_compiler(env: 'Environment', lang: str, for_machine: Machin
linker = lnk(ld, for_machine, version=tasking_version)
return cls(
- ccache, compiler, tasking_version, for_machine, is_cross, env,
+ ccache, compiler, tasking_version, for_machine, env,
full_version=full_version, linker=linker)
_handle_exceptions(popen_exceptions, compilers)
@@ -673,7 +672,6 @@ def detect_cuda_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
from ..options import OptionKey
from ..linkers.linkers import CudaLinker
popen_exceptions = {}
- is_cross = env.is_cross_build(for_machine)
compilers, ccache_exe = _get_compilers(env, 'cuda', for_machine)
ccache = ccache_exe.get_command() if (ccache_exe and ccache_exe.found()) else []
for compiler in compilers:
@@ -703,7 +701,7 @@ def detect_cuda_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
cls = CudaCompiler
env.add_lang_args(cls.language, cls, for_machine)
key = OptionKey('cuda_link_args', machine=for_machine)
- if for_machine is MachineChoice.BUILD and not is_cross:
+ if env.is_cross_build(for_machine):
key = key.as_host()
if key in env.options:
# To fix LDFLAGS issue
@@ -711,7 +709,7 @@ def detect_cuda_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
assert isinstance(val, list)
env.coredata.optstore.set_option(key, cls.to_host_flags_base(val, Phase.LINKER))
linker = CudaLinker(compiler, for_machine, CudaCompiler.LINKER_PREFIX, [], version=CudaLinker.parse_version())
- return cls(ccache, compiler, version, for_machine, is_cross, cpp_compiler, env, linker=linker)
+ return cls(ccache, compiler, version, for_machine, cpp_compiler, env, linker=linker)
raise EnvironmentException(f'Could not find suitable CUDA compiler: "{"; ".join([" ".join(c) for c in compilers])}"')
def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> Compiler:
@@ -719,7 +717,6 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
from ..linkers import linkers
popen_exceptions: T.Dict[str, T.Union[Exception, str]] = {}
compilers, ccache = _get_compilers(env, 'fortran', for_machine)
- is_cross = env.is_cross_build(for_machine)
cls: T.Type[FortranCompiler]
for compiler in compilers:
# capture help text for possible fallback
@@ -755,14 +752,14 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
cls = fortran.ElbrusFortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
defines, full_version=full_version, linker=linker)
else:
version = _get_gnu_version_from_defines(defines)
cls = fortran.GnuFortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
defines, full_version=full_version, linker=linker)
if 'Arm C/C++/Fortran Compiler' in out:
@@ -772,13 +769,13 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
version = '.'.join([x for x in arm_ver_match.groups() if x is not None])
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
linker=linker)
if 'G95' in out:
cls = fortran.G95FortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'Sun Fortran' in err:
@@ -786,7 +783,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
cls = fortran.SunFortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'Intel(R) Fortran Compiler for applications' in err:
@@ -796,7 +793,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
target, linker=linker)
if 'Intel(R) Visual Fortran' in err or 'Intel(R) Fortran' in err:
@@ -806,26 +803,26 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
env.add_lang_args(cls.language, cls, for_machine)
linker = linkers.XilinkDynamicLinker(for_machine, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
target, linker=linker)
if 'ifort (IFORT)' in out:
cls = fortran.IntelFortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'ifx (IFORT)' in out or 'ifx (IFX)' in out:
cls = fortran.IntelLLVMFortranCompiler
linker = guess_nix_linker(env, compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'PathScale EKOPath(tm)' in err:
return fortran.PathScaleFortranCompiler(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version)
if 'PGI Compilers' in out:
@@ -834,7 +831,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
linker = linkers.PGIDynamicLinker(compiler, for_machine,
cls.LINKER_PREFIX, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'NVIDIA Compilers and Tools' in out:
@@ -843,7 +840,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
linker = linkers.PGIDynamicLinker(compiler, for_machine,
cls.LINKER_PREFIX, [], version=version)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
def _get_linker_try_windows(cls: T.Type['Compiler']) -> T.Optional['DynamicLinker']:
@@ -868,14 +865,14 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
cls = fortran.LlvmFlangFortranCompiler
linker = _get_linker_try_windows(cls)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'flang' in out or 'clang' in out:
cls = fortran.ClassicFlangFortranCompiler
linker = _get_linker_try_windows(cls)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'Open64 Compiler Suite' in err:
@@ -883,7 +880,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
linker = guess_nix_linker(env,
compiler, cls, version, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
if 'NAG Fortran' in err:
@@ -895,7 +892,7 @@ def detect_fortran_compiler(env: 'Environment', for_machine: MachineChoice) -> C
compiler, for_machine, cls.LINKER_PREFIX, [],
version=version)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
full_version=full_version, linker=linker)
_handle_exceptions(popen_exceptions, compilers)
@@ -912,7 +909,6 @@ def _detect_objc_or_objcpp_compiler(env: 'Environment', lang: str, for_machine:
popen_exceptions: T.Dict[str, T.Union[Exception, str]] = {}
compilers, ccache_exe = _get_compilers(env, lang, for_machine)
ccache = ccache_exe.get_command() if (ccache_exe and ccache_exe.found()) else []
- is_cross = env.is_cross_build(for_machine)
comp: T.Union[T.Type[objc.ObjCCompiler], T.Type[objcpp.ObjCPPCompiler]]
for compiler in compilers:
@@ -932,7 +928,7 @@ def _detect_objc_or_objcpp_compiler(env: 'Environment', lang: str, for_machine:
comp = objc.GnuObjCCompiler if lang == 'objc' else objcpp.GnuObjCPPCompiler
linker = guess_nix_linker(env, compiler, comp, version, for_machine)
c = comp(
- ccache, compiler, version, for_machine, is_cross, env,
+ ccache, compiler, version, for_machine, env,
defines, linker=linker)
if not c.compiles('int main(void) { return 0; }', env)[0]:
popen_exceptions[join_args(compiler)] = f'GCC was not built with support for {"objective-c" if lang == "objc" else "objective-c++"}'
@@ -959,7 +955,7 @@ def _detect_objc_or_objcpp_compiler(env: 'Environment', lang: str, for_machine:
linker = guess_nix_linker(env, compiler, comp, version, for_machine)
return comp(
ccache, compiler, version, for_machine,
- is_cross, env, linker=linker, defines=defines)
+ env, linker=linker, defines=defines)
_handle_exceptions(popen_exceptions, compilers)
raise EnvironmentException('Unreachable code (exception to make mypy happy)')
@@ -1014,7 +1010,6 @@ def detect_cython_compiler(env: 'Environment', for_machine: MachineChoice) -> Co
"""Search for a cython compiler."""
from .cython import CythonCompiler
compilers, _ = _get_compilers(env, 'cython', MachineChoice.BUILD)
- is_cross = env.is_cross_build(for_machine)
popen_exceptions: T.Dict[str, Exception] = {}
for comp in compilers:
@@ -1034,14 +1029,13 @@ def detect_cython_compiler(env: 'Environment', for_machine: MachineChoice) -> Co
if version is not None:
comp_class = CythonCompiler
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class([], comp, version, for_machine, env, is_cross=is_cross)
+ return comp_class([], comp, version, for_machine, env)
_handle_exceptions(popen_exceptions, compilers)
raise EnvironmentException('Unreachable code (exception to make mypy happy)')
def detect_vala_compiler(env: 'Environment', for_machine: MachineChoice) -> Compiler:
from .vala import ValaCompiler
exelist = env.lookup_binary_entry(MachineChoice.BUILD, 'vala')
- is_cross = env.is_cross_build(for_machine)
if exelist is None:
# TODO support fallback
exelist = [defaults['vala'][0]]
@@ -1054,7 +1048,7 @@ def detect_vala_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
if 'Vala' in out:
comp_class = ValaCompiler
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class(exelist, version, for_machine, is_cross, env)
+ return comp_class(exelist, version, for_machine, env)
raise EnvironmentException('Unknown compiler: ' + join_args(exelist))
def detect_rust_compiler(env: 'Environment', for_machine: MachineChoice) -> RustCompiler:
@@ -1062,7 +1056,6 @@ def detect_rust_compiler(env: 'Environment', for_machine: MachineChoice) -> Rust
from ..linkers import linkers
popen_exceptions: T.Dict[str, Exception] = {}
compilers, _ = _get_compilers(env, 'rust', for_machine)
- is_cross = env.is_cross_build(for_machine)
cc = detect_c_compiler(env, for_machine)
is_link_exe = isinstance(cc.linker, linkers.VisualStudioLikeLinkerMixin)
@@ -1176,7 +1169,7 @@ def detect_rust_compiler(env: 'Environment', for_machine: MachineChoice) -> Rust
env.add_lang_args(cls.language, cls, for_machine)
return cls(
- compiler, version, for_machine, is_cross, env,
+ compiler, version, for_machine, env,
linker=linker, full_version=full_version)
_handle_exceptions(popen_exceptions, compilers)
@@ -1197,7 +1190,6 @@ def detect_d_compiler(env: 'Environment', for_machine: MachineChoice) -> Compile
arch = 'x86_mscoff'
popen_exceptions = {}
- is_cross = env.is_cross_build(for_machine)
info = env.machines[for_machine]
compilers, ccache = _get_compilers(env, 'd', for_machine)
cls: T.Type[d.DCompiler]
@@ -1235,7 +1227,7 @@ def detect_d_compiler(env: 'Environment', for_machine: MachineChoice) -> Compile
if info.is_windows() or info.is_cygwin():
objfile = os.path.basename(f)[:-1] + 'obj'
extra_args = [f]
- if is_cross:
+ if env.is_cross_build(for_machine):
extra_args.append(f'-mtriple={info.cpu}-windows')
linker = guess_win_linker(env,
@@ -1257,13 +1249,13 @@ def detect_d_compiler(env: 'Environment', for_machine: MachineChoice) -> Compile
return cls(
exelist, version, for_machine, env, arch,
full_version=full_version, linker=linker,
- is_cross=is_cross, version_output=out)
+ version_output=out)
elif 'gdc' in out:
cls = d.GnuDCompiler
linker = guess_nix_linker(env, exelist, cls, version, for_machine)
return cls(
exelist, version, for_machine, env, arch,
- is_cross=is_cross, full_version=full_version, linker=linker)
+ full_version=full_version, linker=linker)
elif 'The D Language Foundation' in out or 'Digital Mars' in out:
cls = d.DmdDCompiler
# DMD seems to require a file
@@ -1302,7 +1294,6 @@ def detect_d_compiler(env: 'Environment', for_machine: MachineChoice) -> Compile
def detect_swift_compiler(env: 'Environment', for_machine: MachineChoice) -> Compiler:
from .swift import SwiftCompiler
exelist = env.lookup_binary_entry(for_machine, 'swift')
- is_cross = env.is_cross_build(for_machine)
if exelist is None:
# TODO support fallback
exelist = [defaults['swift'][0]]
@@ -1320,13 +1311,12 @@ def detect_swift_compiler(env: 'Environment', for_machine: MachineChoice) -> Com
exelist, cls, version, for_machine,
extra_args=[f.name, '-o', '/dev/null'])
return cls(
- exelist, version, for_machine, is_cross, env, linker=linker)
+ exelist, version, for_machine, env, linker=linker)
raise EnvironmentException('Unknown compiler: ' + join_args(exelist))
def detect_nasm_compiler(env: 'Environment', for_machine: MachineChoice) -> Compiler:
from .asm import NasmCompiler, YasmCompiler, MetrowerksAsmCompilerARM, MetrowerksAsmCompilerEmbeddedPowerPC
- is_cross = env.is_cross_build(for_machine)
# When cross compiling and nasm is not defined in the cross file we can
# fallback to the build machine nasm.
@@ -1352,29 +1342,28 @@ def detect_nasm_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
if 'NASM' in output:
comp_class = NasmCompiler
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class([], comp, version, for_machine, env, cc.linker)
elif 'yasm' in output:
comp_class = YasmCompiler
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class([], comp, version, for_machine, env, cc.linker)
elif 'Metrowerks' in output or 'Freescale' in output:
if 'ARM' in output:
comp_class_mwasmarm = MetrowerksAsmCompilerARM
env.add_lang_args(comp_class_mwasmarm.language, comp_class_mwasmarm, for_machine)
- return comp_class_mwasmarm([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class_mwasmarm([], comp, version, for_machine, env, cc.linker)
else:
comp_class_mwasmeppc = MetrowerksAsmCompilerEmbeddedPowerPC
env.add_lang_args(comp_class_mwasmeppc.language, comp_class_mwasmeppc, for_machine)
- return comp_class_mwasmeppc([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class_mwasmeppc([], comp, version, for_machine, env, cc.linker)
_handle_exceptions(popen_exceptions, compilers)
raise EnvironmentException('Unreachable code (exception to make mypy happy)')
def detect_masm_compiler(env: 'Environment', for_machine: MachineChoice) -> Compiler:
# We need a C compiler to properly detect the machine info and linker
- is_cross = env.is_cross_build(for_machine)
cc = detect_c_compiler(env, for_machine)
- if not is_cross:
+ if not env.is_cross_build(for_machine):
info = detect_machine_info({'c': cc})
else:
info = env.machines[for_machine]
@@ -1405,7 +1394,7 @@ def detect_masm_compiler(env: 'Environment', for_machine: MachineChoice) -> Comp
output = Popen_safe(comp + [arg])[2]
version = search_version(output)
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class([], comp, version, for_machine, env, cc.linker)
except OSError as e:
popen_exceptions[' '.join(comp + [arg])] = e
_handle_exceptions(popen_exceptions, [comp])
@@ -1417,14 +1406,13 @@ def detect_linearasm_compiler(env: Environment, for_machine: MachineChoice) -> C
comp_class: T.Type[ASMCompiler] = TILinearAsmCompiler
arg = '-h'
cc = detect_c_compiler(env, for_machine)
- is_cross = env.is_cross_build(for_machine)
popen_exceptions: T.Dict[str, Exception] = {}
try:
output = Popen_safe(comp + [arg])[2]
version = search_version(output)
env.add_lang_args(comp_class.language, comp_class, for_machine)
- return comp_class([], comp, version, for_machine, env, cc.linker, is_cross=is_cross)
+ return comp_class([], comp, version, for_machine, env, cc.linker)
except OSError as e:
popen_exceptions[' '.join(comp + [arg])] = e
_handle_exceptions(popen_exceptions, [comp])
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 447094ce9..46211465f 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -39,11 +39,11 @@ class FortranCompiler(CLikeCompiler, Compiler):
language = 'fortran'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
Compiler.__init__(self, [], exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version, linker=linker)
+ full_version=full_version, linker=linker)
CLikeCompiler.__init__(self)
def has_function(self, funcname: str, prefix: str, env: 'Environment', *,
@@ -257,14 +257,13 @@ class FortranCompiler(CLikeCompiler, Compiler):
class GnuFortranCompiler(GnuCompiler, FortranCompiler):
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
GnuCompiler.__init__(self, defines)
default_warn_args = ['-Wall']
self.warn_args = {'0': [],
@@ -325,12 +324,12 @@ class GnuFortranCompiler(GnuCompiler, FortranCompiler):
class ElbrusFortranCompiler(ElbrusCompiler, FortranCompiler):
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- FortranCompiler.__init__(self, exelist, version, for_machine, is_cross,
+ FortranCompiler.__init__(self, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ElbrusCompiler.__init__(self)
@@ -348,12 +347,11 @@ class G95FortranCompiler(FortranCompiler):
LINKER_PREFIX = '-Wl,'
id = 'g95'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
default_warn_args = ['-Wall']
self.warn_args = {'0': [],
'1': default_warn_args,
@@ -393,12 +391,11 @@ class IntelFortranCompiler(IntelGnuLikeCompiler, FortranCompiler):
id = 'intel'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
# FIXME: Add support for OS X and Windows in detect_fortran_compiler so
# we are sent the type of compiler
IntelGnuLikeCompiler.__init__(self)
@@ -453,12 +450,11 @@ class IntelClFortranCompiler(IntelVisualStudioLikeCompiler, FortranCompiler):
always_args = ['/nologo']
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, target: str,
+ env: Environment, target: str,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
IntelVisualStudioLikeCompiler.__init__(self, target)
self.file_suffixes = ('f90', 'f', 'for', 'ftn', 'fpp', )
@@ -498,12 +494,11 @@ class PathScaleFortranCompiler(FortranCompiler):
id = 'pathscale'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
default_warn_args = ['-fullwarn']
self.warn_args = {'0': [],
'1': default_warn_args,
@@ -517,12 +512,11 @@ class PathScaleFortranCompiler(FortranCompiler):
class PGIFortranCompiler(PGICompiler, FortranCompiler):
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
default_warn_args = ['-Minform=inform']
@@ -542,12 +536,11 @@ class NvidiaHPC_FortranCompiler(PGICompiler, FortranCompiler):
id = 'nvidia_hpc'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
PGICompiler.__init__(self)
default_warn_args = ['-Minform=inform']
@@ -562,12 +555,11 @@ class ClassicFlangFortranCompiler(ClangCompiler, FortranCompiler):
id = 'flang'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, {})
default_warn_args = ['-Minform=inform']
self.warn_args = {'0': [],
@@ -597,12 +589,11 @@ class LlvmFlangFortranCompiler(ClangCompiler, FortranCompiler):
id = 'llvm-flang'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, {})
default_warn_args = ['-Wall']
self.warn_args = {'0': [],
@@ -651,12 +642,11 @@ class Open64FortranCompiler(FortranCompiler):
id = 'open64'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
default_warn_args = ['-fullwarn']
self.warn_args = {'0': [],
'1': default_warn_args,
@@ -672,12 +662,11 @@ class NAGFortranCompiler(FortranCompiler):
id = 'nagfor'
- def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice, is_cross: bool,
+ def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
env: Environment, linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
FortranCompiler.__init__(self, exelist, version, for_machine,
- is_cross, env, linker=linker,
- full_version=full_version)
+ env, linker=linker, full_version=full_version)
# Warnings are on by default; -w disables (by category):
self.warn_args = {
'0': ['-w=all'],
diff --git a/mesonbuild/compilers/mixins/ti.py b/mesonbuild/compilers/mixins/ti.py
index 93cc31ee8..99a0120da 100644
--- a/mesonbuild/compilers/mixins/ti.py
+++ b/mesonbuild/compilers/mixins/ti.py
@@ -41,6 +41,10 @@ class TICompiler(Compiler):
id = 'ti'
+ if T.TYPE_CHECKING:
+ # Older versions of mypy can't figure this out for some reason.
+ is_cross: bool
+
def __init__(self) -> None:
if not self.is_cross:
raise EnvironmentException('TI compilers only support cross-compilation.')
diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py
index 8cbe2933d..58d676786 100644
--- a/mesonbuild/compilers/objc.py
+++ b/mesonbuild/compilers/objc.py
@@ -27,11 +27,11 @@ class ObjCCompiler(CLikeCompiler, Compiler):
language = 'objc'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
Compiler.__init__(self, ccache, exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version,
+ full_version=full_version,
linker=linker)
CLikeCompiler.__init__(self)
@@ -59,11 +59,11 @@ class ObjCCompiler(CLikeCompiler, Compiler):
class GnuObjCCompiler(GnuCStds, GnuCompiler, ObjCCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- ObjCCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ ObjCCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
GnuCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -89,11 +89,11 @@ class GnuObjCCompiler(GnuCStds, GnuCompiler, ObjCCompiler):
class ClangObjCCompiler(ClangCStds, ClangCompiler, ObjCCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- ObjCCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ ObjCCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py
index d205dd1fc..df71de3c9 100644
--- a/mesonbuild/compilers/objcpp.py
+++ b/mesonbuild/compilers/objcpp.py
@@ -27,12 +27,11 @@ class ObjCPPCompiler(CLikeCompiler, Compiler):
language = 'objcpp'
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
Compiler.__init__(self, ccache, exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version,
- linker=linker)
+ full_version=full_version, linker=linker)
CLikeCompiler.__init__(self)
def form_compileropt_key(self, basename: str) -> OptionKey:
@@ -64,11 +63,11 @@ class ObjCPPCompiler(CLikeCompiler, Compiler):
class GnuObjCPPCompiler(GnuCPPStds, GnuCompiler, ObjCPPCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- ObjCPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ ObjCPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
GnuCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
@@ -95,11 +94,11 @@ class GnuObjCPPCompiler(GnuCPPStds, GnuCompiler, ObjCPPCompiler):
class ClangObjCPPCompiler(ClangCPPStds, ClangCompiler, ObjCPPCompiler):
def __init__(self, ccache: T.List[str], exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
+ env: Environment,
defines: T.Optional[T.Dict[str, str]] = None,
linker: T.Optional['DynamicLinker'] = None,
full_version: T.Optional[str] = None):
- ObjCPPCompiler.__init__(self, ccache, exelist, version, for_machine, is_cross,
+ ObjCPPCompiler.__init__(self, ccache, exelist, version, for_machine,
env, linker=linker, full_version=full_version)
ClangCompiler.__init__(self, defines)
default_warn_args = ['-Wall', '-Winvalid-pch']
diff --git a/mesonbuild/compilers/rust.py b/mesonbuild/compilers/rust.py
index 55c58b56a..a6954f866 100644
--- a/mesonbuild/compilers/rust.py
+++ b/mesonbuild/compilers/rust.py
@@ -98,12 +98,10 @@ class RustCompiler(Compiler):
}
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment,
- full_version: T.Optional[str] = None,
+ env: Environment, full_version: T.Optional[str] = None,
linker: T.Optional['DynamicLinker'] = None):
super().__init__([], exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version,
- linker=linker)
+ full_version=full_version, linker=linker)
self.rustup_run_and_args: T.Optional[T.Tuple[T.List[str], T.List[str]]] = get_rustup_run_and_args(exelist)
self.base_options.update({OptionKey(o) for o in ['b_colorout', 'b_coverage', 'b_ndebug', 'b_pgo']})
if isinstance(self.linker, VisualStudioLikeLinkerMixin):
@@ -462,7 +460,7 @@ class RustCompiler(Compiler):
return None
return RustdocTestCompiler(exelist, self.version, self.for_machine,
- self.is_cross, self.environment,
+ self.environment,
full_version=self.full_version,
linker=self.linker, rustc=self)
@@ -494,10 +492,10 @@ class RustdocTestCompiler(RustCompiler):
id = 'rustdoc --test'
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, full_version: T.Optional[str],
+ env: Environment, full_version: T.Optional[str],
linker: T.Optional['DynamicLinker'], rustc: RustCompiler):
super().__init__(exelist, version, for_machine,
- is_cross, env, full_version, linker)
+ env, full_version, linker)
self.rustc = rustc
@functools.lru_cache(maxsize=None)
diff --git a/mesonbuild/compilers/swift.py b/mesonbuild/compilers/swift.py
index 80c104bdb..2a0c6fd09 100644
--- a/mesonbuild/compilers/swift.py
+++ b/mesonbuild/compilers/swift.py
@@ -37,11 +37,10 @@ class SwiftCompiler(Compiler):
id = 'llvm'
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, env: Environment, full_version: T.Optional[str] = None,
+ env: Environment, full_version: T.Optional[str] = None,
linker: T.Optional['DynamicLinker'] = None):
super().__init__([], exelist, version, for_machine, env,
- is_cross=is_cross, full_version=full_version,
- linker=linker)
+ full_version=full_version, linker=linker)
self.version = version
if self.info.is_darwin():
try:
diff --git a/mesonbuild/compilers/vala.py b/mesonbuild/compilers/vala.py
index da05f88d2..6db3ff996 100644
--- a/mesonbuild/compilers/vala.py
+++ b/mesonbuild/compilers/vala.py
@@ -25,8 +25,8 @@ class ValaCompiler(Compiler):
id = 'valac'
def __init__(self, exelist: T.List[str], version: str, for_machine: MachineChoice,
- is_cross: bool, environment: Environment):
- super().__init__([], exelist, version, for_machine, environment, is_cross=is_cross)
+ environment: Environment):
+ super().__init__([], exelist, version, for_machine, environment)
self.version = version
self.base_options = {OptionKey('b_colorout')}
self.force_link = False