aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-05-13 10:36:58 -0400
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2018-06-06 20:02:37 +0000
commitd503b1423e14a9debd23691b9c89e8213c44ad65 (patch)
treee46987ced672f6e504a958b56a68511874b1af78
parent8fb72510c3b7a7a5f08b4b20b7e1480f5868052a (diff)
downloadmeson-d503b1423e14a9debd23691b9c89e8213c44ad65.zip
meson-d503b1423e14a9debd23691b9c89e8213c44ad65.tar.gz
meson-d503b1423e14a9debd23691b9c89e8213c44ad65.tar.bz2
mconf: Report all unknown cmd line options instead of aborting on first
This is also more consistent with the error message returned by optinterpreter when it finds unknown command line options.
-rw-r--r--mesonbuild/coredata.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index 7f622e5..a46f95a 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -360,7 +360,8 @@ class CoreData:
if type(oldval) != type(value):
self.user_options[name] = value
- def set_options(self, options):
+ def set_options(self, options, subproject=''):
+ unknown_options = []
for o in options:
if '=' not in o:
raise MesonException('Value "%s" not of type "a=b".' % o)
@@ -380,7 +381,12 @@ class CoreData:
tgt = self.base_options[k]
tgt.set_value(v)
else:
- raise MesonException('Unknown option %s.' % k)
+ unknown_options.append(k)
+
+ if unknown_options:
+ unknown_options = ', '.join(sorted(unknown_options))
+ sub = 'In subproject {}: '.format(subproject) if subproject else ''
+ raise MesonException('{}Unknown options: "{}"'.format(sub, unknown_options))
def load(build_dir):
filename = os.path.join(build_dir, 'meson-private', 'coredata.dat')