summaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-06 12:58:39 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-10-20 15:15:53 -0700
commitde770ed936b2dde6e1506feb2433e0f82ae2ff9f (patch)
tree7206d659b4bbc8e43f941eeecfa76c73f9c05d7d /mesonbuild
parentfac054bf714faed90badcf7ef27cffec00374e0d (diff)
downloadmeson-de770ed936b2dde6e1506feb2433e0f82ae2ff9f.tar.gz
interpreter: port dependency optional_modules to typed_kwargs
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/dependencies/base.py1
-rw-r--r--mesonbuild/dependencies/cmake.py4
-rw-r--r--mesonbuild/dependencies/dev.py6
-rw-r--r--mesonbuild/interpreter/kwargs.py1
-rw-r--r--mesonbuild/interpreter/type_checking.py1
5 files changed, 8 insertions, 5 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
index 4705d699f..50514e148 100644
--- a/mesonbuild/dependencies/base.py
+++ b/mesonbuild/dependencies/base.py
@@ -52,6 +52,7 @@ if T.TYPE_CHECKING:
method: DependencyMethods
modules: T.List[str]
native: MachineChoice
+ optional_modules: T.List[str]
_MissingCompilerBase = Compiler
else:
diff --git a/mesonbuild/dependencies/cmake.py b/mesonbuild/dependencies/cmake.py
index 94a1b1d04..066bb2900 100644
--- a/mesonbuild/dependencies/cmake.py
+++ b/mesonbuild/dependencies/cmake.py
@@ -4,7 +4,7 @@
from __future__ import annotations
from .base import ExternalDependency, DependencyException, DependencyTypeName
-from ..mesonlib import is_windows, MesonException, PerMachine, stringlistify, extract_as_list, MachineChoice
+from ..mesonlib import is_windows, MesonException, PerMachine, MachineChoice
from ..cmake import CMakeExecutor, CMakeTraceParser, CMakeException, CMakeToolchain, CMakeExecScope, check_cmake_args, resolve_cmake_trace_targets, cmake_is_debug
from .. import mlog
import importlib.resources
@@ -125,7 +125,7 @@ class CMakeDependency(ExternalDependency):
package_version = kwargs.get('cmake_package_version', '')
components = [(x, True) for x in kwargs.get('components', [])]
modules = [(x, True) for x in kwargs.get('modules', [])]
- modules += [(x, False) for x in stringlistify(extract_as_list(kwargs, 'optional_modules'))] # type: ignore[arg-type]
+ modules += [(x, False) for x in kwargs.get('optional_modules', [])]
cm_path = [x if os.path.isabs(x) else os.path.join(environment.get_source_dir(), x) for x in kwargs.get('cmake_module_path', [])]
if cm_path:
cm_args.append('-DCMAKE_MODULE_PATH=' + ';'.join(cm_path))
diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py
index 4dcd5eb70..62583880f 100644
--- a/mesonbuild/dependencies/dev.py
+++ b/mesonbuild/dependencies/dev.py
@@ -16,7 +16,7 @@ from mesonbuild.interpreterbase.decorators import FeatureDeprecated
from .. import mesonlib, mlog
from ..environment import get_llvm_tool_names
-from ..mesonlib import version_compare, version_compare_many, search_version, stringlistify, extract_as_list
+from ..mesonlib import version_compare, version_compare_many, search_version
from .base import DependencyException, DependencyMethods, detect_compiler, strip_system_includedirs, strip_system_libdirs, SystemDependency, ExternalDependency, DependencyTypeName
from .cmake import CMakeDependency
from .configtool import ConfigToolDependency
@@ -214,7 +214,7 @@ class LLVMDependencyConfigTool(ConfigToolDependency):
self.provided_modules = self.get_config_value(['--components'], 'modules')
modules = kwargs.get('modules', [])
self.check_components(modules)
- opt_modules = stringlistify(extract_as_list(kwargs, 'optional_modules')) # type: ignore[arg-type]
+ opt_modules = kwargs.get('optional_modules', [])
self.check_components(opt_modules, required=False)
cargs = mesonlib.OrderedSet(self.get_config_value(['--cppflags'], 'compile_args'))
@@ -387,7 +387,7 @@ class LLVMDependencyConfigTool(ConfigToolDependency):
class LLVMDependencyCMake(CMakeDependency):
def __init__(self, name: str, env: 'Environment', kwargs: DependencyObjectKWs) -> None:
self.llvm_modules = kwargs.get('modules', [])
- self.llvm_opt_modules = stringlistify(extract_as_list(kwargs, 'optional_modules')) # type: ignore[arg-type]
+ self.llvm_opt_modules = kwargs.get('optional_modules', [])
for_machine = kwargs.get('native', mesonlib.MachineChoice.HOST)
compilers = env.coredata.compilers[for_machine]
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index d193c593d..5ae296f81 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -507,3 +507,4 @@ class FuncDependency(TypedDict):
modules: T.List[str]
native: MachineChoice
not_found_message: str
+ optional_modules: T.List[str]
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index f22135a02..f0bb340bb 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -948,4 +948,5 @@ DEPENDENCY_KWS: T.List[KwargInfo] = [
KwargInfo('main', bool, default=False),
KwargInfo('modules', ContainerTypeInfo(list, str), listify=True, default=[]),
KwargInfo('not_found_message', str, default='', since='0.50.0'),
+ KwargInfo('optional_modules', ContainerTypeInfo(list, str), listify=True, default=[]),
]