|
|
|
@ -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]: |
|
|
|
|