aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/optinterpreter.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2017-11-16 18:15:09 -0800
committerDylan Baker <dylan@pnwbakers.com>2017-12-19 10:10:40 -0800
commite245e578656f1b3876d22cae6253b58872b10463 (patch)
treee6ca59e45f343b44368a2acb0c4ce06a5e8d6f8b /mesonbuild/optinterpreter.py
parente1c9d2f53a1fb021e266e189e615919cb74569e2 (diff)
downloadmeson-e245e578656f1b3876d22cae6253b58872b10463.zip
meson-e245e578656f1b3876d22cae6253b58872b10463.tar.gz
meson-e245e578656f1b3876d22cae6253b58872b10463.tar.bz2
Warn on unknown command line arguments
I have a tendency to typo things. Humans in general are bad at spotting spelling mistakes, computers are not. This patches prints the bad options and provides the generic meson "This will be a hard error someday" message.
Diffstat (limited to 'mesonbuild/optinterpreter.py')
-rw-r--r--mesonbuild/optinterpreter.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py
index f8ccbe6..df945ab 100644
--- a/mesonbuild/optinterpreter.py
+++ b/mesonbuild/optinterpreter.py
@@ -15,6 +15,7 @@
import os, re
import functools
+from . import mlog
from . import mparser
from . import coredata
from . import mesonlib
@@ -146,6 +147,14 @@ class OptionInterpreter:
e.colno = cur.colno
e.file = os.path.join('meson_options.txt')
raise e
+ bad = [o for o in sorted(self.cmd_line_options) if not
+ (o in list(self.options) + forbidden_option_names or
+ any(o.startswith(p) for p in forbidden_prefixes))]
+ if bad:
+ sub = 'In subproject {}: '.format(self.subproject) if self.subproject else ''
+ mlog.warning(
+ '{}Unknown command line options: "{}"\n'
+ 'This will become a hard error in a future Meson release.'.format(sub, ', '.join(bad)))
def reduce_single(self, arg):
if isinstance(arg, str):