diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-01-30 12:53:00 -0500 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-02-22 22:22:15 -0500 |
commit | e8375d20a9aeb8c3b0ad58f299ded0e5e978b447 (patch) | |
tree | 68cc505a96cf188dcaeaa31388a14a59ac6a83fa | |
parent | 5d64a15be7e66cfa5573924efeff5dc1e3a39b3e (diff) | |
download | meson-e8375d20a9aeb8c3b0ad58f299ded0e5e978b447.zip meson-e8375d20a9aeb8c3b0ad58f299ded0e5e978b447.tar.gz meson-e8375d20a9aeb8c3b0ad58f299ded0e5e978b447.tar.bz2 |
modules: add ModuleState API to check whether an option was user-specified
Needed to check exclusivity of module options.
-rw-r--r-- | mesonbuild/modules/__init__.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index 73e22ff..72bcd00 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -103,6 +103,13 @@ class ModuleState: module: T.Optional[str] = None) -> T.Union[str, int, bool, 'WrapMode']: return self.environment.coredata.get_option(mesonlib.OptionKey(name, subproject, machine, lang, module)) + def is_user_defined_option(self, name: str, subproject: str = '', + machine: MachineChoice = MachineChoice.HOST, + lang: T.Optional[str] = None, + module: T.Optional[str] = None) -> bool: + key = mesonlib.OptionKey(name, subproject, machine, lang, module) + return key in self._interpreter.user_defined_options.cmd_line_options + class ModuleObject(HoldableObject): """Base class for all objects returned by modules |