diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-05-13 10:36:58 -0400 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2018-06-06 20:02:37 +0000 |
commit | d503b1423e14a9debd23691b9c89e8213c44ad65 (patch) | |
tree | e46987ced672f6e504a958b56a68511874b1af78 | |
parent | 8fb72510c3b7a7a5f08b4b20b7e1480f5868052a (diff) | |
download | meson-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.py | 10 |
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') |