aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/coredata.py15
1 files changed, 7 insertions, 8 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index c2604be..37d830d 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -758,7 +758,7 @@ class CoreData:
except KeyError:
continue
- def set_options(self, options: T.Dict[OptionKey, T.Any], subproject: str = '', warn_unknown: bool = True) -> None:
+ def set_options(self, options: T.Dict[OptionKey, T.Any], subproject: str = '') -> None:
if not self.is_cross_build():
options = {k: v for k, v in options.items() if k.machine is not MachineChoice.BUILD}
# Set prefix first because it's needed to sanitize other options
@@ -774,16 +774,15 @@ class CoreData:
for k, v in options.items():
if k == pfk:
continue
- elif k not in self.options:
- unknown_options.append(k)
- else:
+ elif k in self.options:
self.set_option(k, v)
- if unknown_options and warn_unknown:
+ elif k.machine != MachineChoice.BUILD:
+ unknown_options.append(k)
+ if unknown_options:
unknown_options_str = ', '.join(sorted(str(s) for s in unknown_options))
sub = f'In subproject {subproject}: ' if subproject else ''
- mlog.warning(f'{sub}Unknown options: "{unknown_options_str}"')
- mlog.log('The value of new options can be set with:')
- mlog.log(mlog.bold('meson setup <builddir> --reconfigure -Dnew_option=new_value ...'))
+ raise MesonException(f'{sub}Unknown options: "{unknown_options_str}"')
+
if not self.is_cross_build():
self.copy_build_options_from_regular_ones()