aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-01-30 12:53:00 -0500
committerEli Schwartz <eschwartz@archlinux.org>2022-02-22 22:22:15 -0500
commite8375d20a9aeb8c3b0ad58f299ded0e5e978b447 (patch)
tree68cc505a96cf188dcaeaa31388a14a59ac6a83fa
parent5d64a15be7e66cfa5573924efeff5dc1e3a39b3e (diff)
downloadmeson-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__.py7
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