diff options
-rw-r--r-- | backends.py | 2 | ||||
-rw-r--r-- | coredata.py | 1 | ||||
-rw-r--r-- | environment.py | 6 | ||||
-rwxr-xr-x | meson.py | 2 | ||||
-rw-r--r-- | ninjabackend.py | 2 | ||||
-rw-r--r-- | optinterpreter.py | 1 |
6 files changed, 14 insertions, 0 deletions
diff --git a/backends.py b/backends.py index 60c3818..8698428 100644 --- a/backends.py +++ b/backends.py @@ -341,6 +341,8 @@ class Backend(): commands += compiler.get_buildtype_args(self.environment.coredata.buildtype) if self.environment.coredata.coverage: commands += compiler.get_coverage_args() + if self.environment.coredata.werror: + commands += compiler.get_werror_args() if isinstance(target, build.SharedLibrary): commands += compiler.get_pic_args() for dep in target.get_external_deps(): diff --git a/coredata.py b/coredata.py index 619b15b..4e744ec 100644 --- a/coredata.py +++ b/coredata.py @@ -40,6 +40,7 @@ class CoreData(): self.use_pch = options.use_pch self.unity = options.unity self.coverage = options.coverage + self.werror = options.werror self.user_options = {} self.external_args = {} # These are set from "the outside" with e.g. mesonconf self.external_link_args = {} diff --git a/environment.py b/environment.py index 844fac1..1032974 100644 --- a/environment.py +++ b/environment.py @@ -148,6 +148,9 @@ class CCompiler(): def get_coverage_link_args(self): return ['-lgcov'] + def get_werror_args(self): + return ['-Werror'] + def get_std_exe_link_args(self): return [] @@ -597,6 +600,9 @@ class ValaCompiler(): def get_exelist(self): return self.exelist + def get_werror_args(self): + return ['--fatal-warnings'] + def get_language(self): return self.language @@ -66,6 +66,8 @@ parser.add_option('--disable-pch', action='store_false', dest='use_pch', default help='do not use precompiled headers') parser.add_option('--unity', action='store_true', dest='unity', default=False,\ help='unity build') +parser.add_option('--werror', action='store_true', dest='werror', default=False,\ + help='Treat warnings as errors') parser.add_option('--cross-file', default=None, dest='cross_file', help='file describing cross compilation environment') diff --git a/ninjabackend.py b/ninjabackend.py index d3606f7..d019ae7 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -493,6 +493,8 @@ class NinjaBackend(backends.Backend): relsc = os.path.join(self.get_target_dir(target), target.get_basename() + '.dir', sc) rel_s = os.path.join(self.build_to_src, s) args += ['--deps', relsc + '.d'] + if self.environment.coredata.werror: + args += valac.get_werror_args() for d in target.external_deps: if isinstance(d, dependencies.PkgConfigDependency): args += ['--pkg', d.name] diff --git a/optinterpreter.py b/optinterpreter.py index 7e45c25..812b6f4 100644 --- a/optinterpreter.py +++ b/optinterpreter.py @@ -28,6 +28,7 @@ forbidden_option_names = {'type': True, 'datadir' : True, 'mandir' : True, 'localedir' : True, + 'werror' : True, } class OptionException(coredata.MesonException): |