aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
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 /mesonbuild
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.
Diffstat (limited to 'mesonbuild')
-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')