diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-10-13 10:45:23 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2021-10-14 14:17:50 -0400 |
commit | 8a0d12ec295780977d0e2cb7e2f64f1e3a3e0067 (patch) | |
tree | d9e8cff75f657c7282459e18c0bb8408a4ec430e /mesonbuild/optinterpreter.py | |
parent | 5e96730d7d9f1f6bebf66d04381bc5ec0f80a1cc (diff) | |
download | meson-8a0d12ec295780977d0e2cb7e2f64f1e3a3e0067.zip meson-8a0d12ec295780977d0e2cb7e2f64f1e3a3e0067.tar.gz meson-8a0d12ec295780977d0e2cb7e2f64f1e3a3e0067.tar.bz2 |
optinterpreter: Fix builtin option names not being reserved anymore
Diffstat (limited to 'mesonbuild/optinterpreter.py')
-rw-r--r-- | mesonbuild/optinterpreter.py | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/mesonbuild/optinterpreter.py b/mesonbuild/optinterpreter.py index 7818915..64c4af2 100644 --- a/mesonbuild/optinterpreter.py +++ b/mesonbuild/optinterpreter.py @@ -15,7 +15,6 @@ import re import typing as T -from . import compilers from . import coredata from . import mesonlib from . import mparser @@ -43,21 +42,6 @@ if T.TYPE_CHECKING: }) -forbidden_option_names = set(coredata.BUILTIN_OPTIONS.keys()) -forbidden_prefixes = [lang + '_' for lang in compilers.all_languages] + ['b_', 'backend_'] -reserved_prefixes = ['cross_'] - -def is_invalid_name(name: str, *, log: bool = True) -> bool: - if name in forbidden_option_names: - return True - pref = name.split('_')[0] + '_' - if pref in forbidden_prefixes: - return True - if pref in reserved_prefixes: - if log: - mlog.deprecation('Option uses prefix "%s", which is reserved for Meson. This will become an error in the future.' % pref) - return False - class OptionException(mesonlib.MesonException): pass @@ -176,7 +160,8 @@ class OptionInterpreter: opt_name = args[0] if optname_regex.search(opt_name) is not None: raise OptionException('Option names can only contain letters, numbers or dashes.') - if is_invalid_name(opt_name): + key = mesonlib.OptionKey.from_string(opt_name).evolve(subproject=self.subproject) + if not key.is_project(): raise OptionException('Option name %s is reserved.' % opt_name) opt_type = kwargs['type'] @@ -192,7 +177,6 @@ class OptionInterpreter: opt = parser(description, T.cast('ParserArgs', parser_kwargs)) opt.deprecated = kwargs['deprecated'] - key = mesonlib.OptionKey(opt_name, self.subproject) if key in self.options: mlog.deprecation(f'Option {opt_name} already exists.') self.options[key] = opt |