From 83237f2b381fad8954a0bb30cf3bb67a31f808b3 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Fri, 18 Jul 2014 20:51:26 +0300 Subject: [PATCH] Added option for werror. --- backends.py | 2 ++ coredata.py | 1 + environment.py | 6 ++++++ meson.py | 2 ++ ninjabackend.py | 2 ++ optinterpreter.py | 1 + 6 files changed, 14 insertions(+) diff --git a/backends.py b/backends.py index 60c381806..869842845 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 619b15b7f..4e744ecd5 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 844fac156..10329748e 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 diff --git a/meson.py b/meson.py index 517577aa4..0c6ae36ad 100755 --- a/meson.py +++ b/meson.py @@ -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 d3606f76c..d019ae7d1 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 7e45c25c1..812b6f410 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):