aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2019-11-25 12:05:19 -0800
committerDylan Baker <dylan@pnwbakers.com>2019-12-12 09:35:32 -0800
commit7460e4ccda339d167402bd077dcaa364fab5e172 (patch)
tree0926cbc0b7970b4b9de20b6801d6aba51efa712d
parentee6e249f659cd4658ae2f1a425d4aa01585c23aa (diff)
downloadmeson-7460e4ccda339d167402bd077dcaa364fab5e172.zip
meson-7460e4ccda339d167402bd077dcaa364fab5e172.tar.gz
meson-7460e4ccda339d167402bd077dcaa364fab5e172.tar.bz2
compilers: Make get_display_language a class or static method
Currently this is done at the instance level, but we need it at the class level to allow compiler "lang" args to be gotten early enough. This patch also removes a couple of instance of branch/leaf classes providing their own implementation that is identical to the Compiler version.
-rw-r--r--mesonbuild/compilers/compilers.py5
-rw-r--r--mesonbuild/compilers/cpp.py3
-rw-r--r--mesonbuild/compilers/cs.py3
-rw-r--r--mesonbuild/compilers/cuda.py3
-rw-r--r--mesonbuild/compilers/fortran.py3
-rw-r--r--mesonbuild/compilers/objc.py3
-rw-r--r--mesonbuild/compilers/objcpp.py3
7 files changed, 11 insertions, 12 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index eedd4cf..713a9e7 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -731,8 +731,9 @@ class Compiler:
def get_language(self) -> str:
return self.language
- def get_display_language(self) -> str:
- return self.language.capitalize()
+ @classmethod
+ def get_display_language(cls) -> str:
+ return cls.language.capitalize()
def get_default_suffix(self) -> str:
return self.default_suffix
diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
index 0cf77ab..a2dd60f 100644
--- a/mesonbuild/compilers/cpp.py
+++ b/mesonbuild/compilers/cpp.py
@@ -67,7 +67,8 @@ class CPPCompiler(CLikeCompiler, Compiler):
Compiler.__init__(self, exelist, version, for_machine, info, **kwargs)
CLikeCompiler.__init__(self, is_cross, exe_wrap)
- def get_display_language(self):
+ @staticmethod
+ def get_display_language():
return 'C++'
def get_no_stdinc_args(self):
diff --git a/mesonbuild/compilers/cs.py b/mesonbuild/compilers/cs.py
index f2b1442..d064e7c 100644
--- a/mesonbuild/compilers/cs.py
+++ b/mesonbuild/compilers/cs.py
@@ -43,7 +43,8 @@ class CsCompiler(BasicLinkerIsCompilerMixin, Compiler):
self.is_cross = False
self.runner = runner
- def get_display_language(self):
+ @classmethod
+ def get_display_language(cls):
return 'C sharp'
def get_always_args(self):
diff --git a/mesonbuild/compilers/cuda.py b/mesonbuild/compilers/cuda.py
index c8ab9ac..385e4cf 100644
--- a/mesonbuild/compilers/cuda.py
+++ b/mesonbuild/compilers/cuda.py
@@ -61,9 +61,6 @@ class CudaCompiler(Compiler):
def get_always_args(self):
return []
- def get_display_language(self):
- return 'Cuda'
-
def get_no_stdinc_args(self):
return []
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 607d7a5..4aff72e 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -49,9 +49,6 @@ class FortranCompiler(CLikeCompiler, Compiler):
CLikeCompiler.__init__(self, is_cross, exe_wrapper)
self.id = 'unknown'
- def get_display_language(self):
- return 'Fortran'
-
def has_function(self, funcname, prefix, env, *, extra_args=None, dependencies=None):
raise MesonException('Fortran does not have "has_function" capability.\n'
'It is better to test if a Fortran capability is working like:\n\n'
diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py
index 9f8bda8..a4aa5dc 100644
--- a/mesonbuild/compilers/objc.py
+++ b/mesonbuild/compilers/objc.py
@@ -36,7 +36,8 @@ class ObjCCompiler(CLikeCompiler, Compiler):
Compiler.__init__(self, exelist, version, for_machine, info, **kwargs)
CLikeCompiler.__init__(self, is_cross, exe_wrap)
- def get_display_language(self):
+ @staticmethod
+ def get_display_language():
return 'Objective-C'
def sanity_check(self, work_dir, environment):
diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py
index ea35a36..b42cef6 100644
--- a/mesonbuild/compilers/objcpp.py
+++ b/mesonbuild/compilers/objcpp.py
@@ -35,7 +35,8 @@ class ObjCPPCompiler(CLikeCompiler, Compiler):
Compiler.__init__(self, exelist, version, for_machine, info, **kwargs)
CLikeCompiler.__init__(self, is_cross, exe_wrap)
- def get_display_language(self):
+ @staticmethod
+ def get_display_language():
return 'Objective-C++'
def sanity_check(self, work_dir, environment):