aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-07-18 20:51:26 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-07-18 20:51:26 +0300
commit83237f2b381fad8954a0bb30cf3bb67a31f808b3 (patch)
tree9a784a5a8f8b1d60ab5fd74691d70a68f4dc58b0
parentb8f6c3f39c3e8406ecd2829670b060528f7e35d0 (diff)
downloadmeson-83237f2b381fad8954a0bb30cf3bb67a31f808b3.zip
meson-83237f2b381fad8954a0bb30cf3bb67a31f808b3.tar.gz
meson-83237f2b381fad8954a0bb30cf3bb67a31f808b3.tar.bz2
Added option for werror.
-rw-r--r--backends.py2
-rw-r--r--coredata.py1
-rw-r--r--environment.py6
-rwxr-xr-xmeson.py2
-rw-r--r--ninjabackend.py2
-rw-r--r--optinterpreter.py1
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
diff --git a/meson.py b/meson.py
index 517577a..0c6ae36 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 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):