diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2023-08-24 12:06:37 -0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-09-19 13:54:49 -0400 |
commit | dd22546bdd5b7de34025437ae1360f6dd20491eb (patch) | |
tree | 62993f107dfef3e5914ad64310be91f8163dbc58 /mesonbuild | |
parent | 94f330fd9d5f4a8a6f2e742e985a30fc4850c434 (diff) | |
download | meson-dd22546bdd5b7de34025437ae1360f6dd20491eb.zip meson-dd22546bdd5b7de34025437ae1360f6dd20491eb.tar.gz meson-dd22546bdd5b7de34025437ae1360f6dd20491eb.tar.bz2 |
interpreter: Use common definition for sources type
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 32 | ||||
-rw-r--r-- | mesonbuild/interpreter/type_checking.py | 3 |
2 files changed, 20 insertions, 15 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 10a6abc..1c02c5f 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -90,6 +90,7 @@ from .type_checking import ( SHARED_LIB_KWS, SHARED_MOD_KWS, SOURCES_KW, + SOURCES_VARARGS, STATIC_LIB_KWS, VARIABLES_KW, TEST_KWS, @@ -121,6 +122,7 @@ if T.TYPE_CHECKING: from ..backend.backends import Backend from ..interpreterbase.baseobjects import InterpreterObject, TYPE_var, TYPE_kwargs from ..programs import OverrideProgram + from .type_checking import SourcesVarargsType # Input source types passed to Targets SourceInputs = T.Union[mesonlib.File, build.GeneratedList, build.BuildTarget, build.BothLibraries, @@ -1820,58 +1822,58 @@ class Interpreter(InterpreterBase, HoldableObject): @FeatureNewKwargs('executable', '0.42.0', ['implib']) @permittedKwargs(build.known_exe_kwargs) - @typed_pos_args('executable', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('executable', str, varargs=SOURCES_VARARGS) @typed_kwargs('executable', *EXECUTABLE_KWS, allow_unknown=True) def func_executable(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.Executable) -> build.Executable: return self.build_target(node, args, kwargs, build.Executable) @permittedKwargs(build.known_stlib_kwargs) - @typed_pos_args('static_library', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('static_library', str, varargs=SOURCES_VARARGS) @typed_kwargs('static_library', *STATIC_LIB_KWS, allow_unknown=True) def func_static_lib(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.StaticLibrary) -> build.StaticLibrary: return self.build_target(node, args, kwargs, build.StaticLibrary) @permittedKwargs(build.known_shlib_kwargs) - @typed_pos_args('shared_library', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('shared_library', str, varargs=SOURCES_VARARGS) @typed_kwargs('shared_library', *SHARED_LIB_KWS, allow_unknown=True) def func_shared_lib(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.SharedLibrary) -> build.SharedLibrary: holder = self.build_target(node, args, kwargs, build.SharedLibrary) holder.shared_library_only = True return holder @permittedKwargs(known_library_kwargs) - @typed_pos_args('both_libraries', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('both_libraries', str, varargs=SOURCES_VARARGS) @typed_kwargs('both_libraries', *LIBRARY_KWS, allow_unknown=True) def func_both_lib(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.Library) -> build.BothLibraries: return self.build_both_libraries(node, args, kwargs) @FeatureNew('shared_module', '0.37.0') @permittedKwargs(build.known_shmod_kwargs) - @typed_pos_args('shared_module', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('shared_module', str, varargs=SOURCES_VARARGS) @typed_kwargs('shared_module', *SHARED_MOD_KWS, allow_unknown=True) def func_shared_module(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.SharedModule) -> build.SharedModule: return self.build_target(node, args, kwargs, build.SharedModule) @permittedKwargs(known_library_kwargs) - @typed_pos_args('library', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('library', str, varargs=SOURCES_VARARGS) @typed_kwargs('library', *LIBRARY_KWS, allow_unknown=True) def func_library(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.Library) -> build.Executable: return self.build_library(node, args, kwargs) @permittedKwargs(build.known_jar_kwargs) - @typed_pos_args('jar', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('jar', str, varargs=SOURCES_VARARGS) @typed_kwargs('jar', *JAR_KWS, allow_unknown=True) def func_jar(self, node: mparser.BaseNode, args: T.Tuple[str, T.List[T.Union[str, mesonlib.File, build.GeneratedTypes]]], @@ -1880,10 +1882,10 @@ class Interpreter(InterpreterBase, HoldableObject): @FeatureNewKwargs('build_target', '0.40.0', ['link_whole', 'override_options']) @permittedKwargs(known_build_target_kwargs) - @typed_pos_args('build_target', str, varargs=(str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList, build.StructuredSources, build.ExtractedObjects, build.BuildTarget)) + @typed_pos_args('build_target', str, varargs=SOURCES_VARARGS) @typed_kwargs('build_target', *BUILD_TARGET_KWS, allow_unknown=True) def func_build_target(self, node: mparser.BaseNode, - args: T.Tuple[str, T.List[BuildTargetSource]], + args: T.Tuple[str, SourcesVarargsType], kwargs: kwtypes.BuildTarget ) -> T.Union[build.Executable, build.StaticLibrary, build.SharedLibrary, build.SharedModule, build.BothLibraries, build.Jar]: diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 645b273..59dae9a 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -30,6 +30,7 @@ if T.TYPE_CHECKING: _FullEnvInitValueType = T.Union[EnvironmentVariables, T.List[str], T.List[T.List[str]], EnvInitValueType, str, None] PkgConfigDefineType = T.Optional[T.Tuple[str, str]] + SourcesVarargsType = T.List[T.Union[str, File, CustomTarget, CustomTargetIndex, GeneratedList, StructuredSources, ExtractedObjects, BuildTarget]] def in_set_validator(choices: T.Set[str]) -> T.Callable[[str], T.Optional[str]]: @@ -464,6 +465,8 @@ SOURCES_KW: KwargInfo[T.List[T.Union[str, File, CustomTarget, CustomTargetIndex, default=[], ) +SOURCES_VARARGS = (str, File, CustomTarget, CustomTargetIndex, GeneratedList, StructuredSources, ExtractedObjects, BuildTarget) + VARIABLES_KW: KwargInfo[T.Dict[str, str]] = KwargInfo( 'variables', # str is listified by validator/convertor, cannot use listify=True here because |