aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mlog.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-08-10 10:32:28 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2018-09-04 09:01:39 -0400
commitef231d3edd01df4d3e0f55ccc6f1c683f1bb112f (patch)
tree4a9e4d341c7c67da4eafbb36c08cf84e50ce454c /mesonbuild/mlog.py
parentb350c74386a3c0b7cd894ea589d3e399fd919515 (diff)
downloadmeson-ef231d3edd01df4d3e0f55ccc6f1c683f1bb112f.zip
meson-ef231d3edd01df4d3e0f55ccc6f1c683f1bb112f.tar.gz
meson-ef231d3edd01df4d3e0f55ccc6f1c683f1bb112f.tar.bz2
Add --fatal-meson-warnings command line option
This makes any warning message printed by meson raise an exception, intended to be used by CI and developpers to easily catch deprecation warnings and other potential issues.
Diffstat (limited to 'mesonbuild/mlog.py')
-rw-r--r--mesonbuild/mlog.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py
index b8d3ccc..095b8fd 100644
--- a/mesonbuild/mlog.py
+++ b/mesonbuild/mlog.py
@@ -46,11 +46,13 @@ log_file = None
log_fname = 'meson-log.txt'
log_depth = 0
log_timestamp_start = None
+log_fatal_warnings = False
-def initialize(logdir):
- global log_dir, log_file
+def initialize(logdir, fatal_warnings=False):
+ global log_dir, log_file, log_fatal_warnings
log_dir = logdir
log_file = open(os.path.join(logdir, log_fname), 'w', encoding='utf8')
+ log_fatal_warnings = fatal_warnings
def set_timestamp_start(start):
global log_timestamp_start
@@ -145,6 +147,7 @@ def log(*args, **kwargs):
def _log_error(severity, *args, **kwargs):
from .mesonlib import get_error_location_string
from .environment import build_filename
+ from .mesonlib import MesonException
if severity == 'warning':
args = (yellow('WARNING:'),) + args
elif severity == 'error':
@@ -162,6 +165,10 @@ def _log_error(severity, *args, **kwargs):
log(*args, **kwargs)
+ global log_fatal_warnings
+ if log_fatal_warnings:
+ raise MesonException("Fatal warnings enabled, aborting")
+
def error(*args, **kwargs):
return _log_error('error', *args, **kwargs)