From e8375d20a9aeb8c3b0ad58f299ded0e5e978b447 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 30 Jan 2022 12:53:00 -0500 Subject: modules: add ModuleState API to check whether an option was user-specified Needed to check exclusivity of module options. --- mesonbuild/modules/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) 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 -- cgit v1.1