From b5e077fce8fe8fd892c76c6c4d474751a680503a Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 10 Apr 2020 12:33:34 -0700 Subject: compilers: Move things out of clike One method belongs in the base Compiler class, the other belongs in the GnuLikeCompiler class. --- mesonbuild/compilers/compilers.py | 3 +++ mesonbuild/compilers/mixins/clike.py | 6 ------ mesonbuild/compilers/mixins/gnu.py | 3 +++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 2caddde..52b9592 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -1201,6 +1201,9 @@ class Compiler: """ return [] + def get_coverage_link_args(self) -> T.List[str]: + return self.linker.get_coverage_args() + def get_largefile_args(compiler): ''' diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py index 93c1a7c..cd16f86 100644 --- a/mesonbuild/compilers/mixins/clike.py +++ b/mesonbuild/compilers/mixins/clike.py @@ -114,12 +114,6 @@ class CLikeCompiler: def get_output_args(self, target): return ['-o', target] - def get_coverage_args(self): - return ['--coverage'] - - def get_coverage_link_args(self) -> T.List[str]: - return self.linker.get_coverage_args() - def get_werror_args(self): return ['-Werror'] diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py index 5072b11..29552f3 100644 --- a/mesonbuild/compilers/mixins/gnu.py +++ b/mesonbuild/compilers/mixins/gnu.py @@ -312,6 +312,9 @@ class GnuLikeCompiler(metaclass=abc.ABCMeta): 'not {}.'.format(linker)) return ['-fuse-ld={}'.format(linker)] + def get_coverage_args(self) -> T.List[str]: + return ['--coverage'] + class GnuCompiler(GnuLikeCompiler): """ -- cgit v1.1 From 0f8d73848ae906e4603e7dba2a18c93895aa4be0 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 10 Apr 2020 12:35:25 -0700 Subject: compilers/d: Implement coverage for GDC Since GDC a GNU compiler, we just need to pass the normal GNU options and coverage is generated. Related: ##5669 --- mesonbuild/compilers/d.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index a86f254..4e3eacb 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -642,7 +642,7 @@ class GnuDCompiler(GnuCompiler, DCompiler): '1': default_warn_args, '2': default_warn_args + ['-Wextra'], '3': default_warn_args + ['-Wextra', '-Wpedantic']} - self.base_options = ['b_colorout', 'b_sanitize', 'b_staticpic', 'b_vscrt'] + self.base_options = ['b_colorout', 'b_sanitize', 'b_staticpic', 'b_vscrt', 'b_coverage'] self._has_color_support = version_compare(self.version, '>=4.9') # dependencies were implemented before, but broken - support was fixed in GCC 7.1+ @@ -662,9 +662,6 @@ class GnuDCompiler(GnuCompiler, DCompiler): def get_warn_args(self, level): return self.warn_args[level] - def get_coverage_args(self): - return [] - def get_buildtype_args(self, buildtype): return d_gdc_buildtype_args[buildtype] -- cgit v1.1 From fe3f7676e991572ee5698e63bd9d717c8c8a2c73 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 10 Apr 2020 12:46:55 -0700 Subject: compilers/d: Add missing method for dmd and ldc This allows coverage to be generated, although we can't yet do anything useful with it. --- mesonbuild/compilers/d.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 4e3eacb..a83e221 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -105,6 +105,9 @@ class DmdLikeCompilerMixin: def get_coverage_args(self): return ['-cov'] + def get_coverage_link_args(self): + return [] + def get_preprocess_only_args(self): return ['-E'] -- cgit v1.1