From de770ed936b2dde6e1506feb2433e0f82ae2ff9f Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 6 Dec 2024 12:58:39 -0800 Subject: interpreter: port dependency optional_modules to typed_kwargs --- mesonbuild/dependencies/base.py | 1 + mesonbuild/dependencies/cmake.py | 4 ++-- mesonbuild/dependencies/dev.py | 6 +++--- mesonbuild/interpreter/kwargs.py | 1 + mesonbuild/interpreter/type_checking.py | 1 + 5 files changed, 8 insertions(+), 5 deletions(-) (limited to 'mesonbuild') 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=[]), ] -- cgit v1.2.3