summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/cmake.py48
1 files changed, 25 insertions, 23 deletions
diff --git a/mesonbuild/modules/cmake.py b/mesonbuild/modules/cmake.py
index a9c5d25b7..25129e64a 100644
--- a/mesonbuild/modules/cmake.py
+++ b/mesonbuild/modules/cmake.py
@@ -47,7 +47,9 @@ if T.TYPE_CHECKING:
from . import ModuleState
from ..cmake import SingleTargetOptions
- from ..interpreter import kwargs
+ from ..environment import Environment
+ from ..interpreter import Interpreter, kwargs
+ from ..interpreterbase import TYPE_kwargs, TYPE_var
class WriteBasicPackageVersionFile(TypedDict):
@@ -118,7 +120,7 @@ class CMakeSubproject(ModuleObject):
'found': self.found_method,
})
- def _args_to_info(self, args):
+ def _args_to_info(self, args: T.List[str]) -> T.Dict[str, str]:
if len(args) != 1:
raise InterpreterException('Exactly one argument is required.')
@@ -135,13 +137,13 @@ class CMakeSubproject(ModuleObject):
@noKwargs
@stringArgs
- def get_variable(self, state, args, kwargs):
+ def get_variable(self, state: ModuleState, args: T.List[str], kwargs: TYPE_kwargs) -> TYPE_var:
return self.subp.get_variable_method(args, kwargs)
@FeatureNewKwargs('dependency', '0.56.0', ['include_type'])
@permittedKwargs({'include_type'})
@stringArgs
- def dependency(self, state, args, kwargs):
+ def dependency(self, state: ModuleState, args: T.List[str], kwargs: T.Dict[str, str]) -> dependencies.Dependency:
info = self._args_to_info(args)
if info['func'] == 'executable':
raise InvalidArguments(f'{args[0]} is an executable and does not support the dependency() method. Use target() instead.')
@@ -155,31 +157,31 @@ class CMakeSubproject(ModuleObject):
@noKwargs
@stringArgs
- def include_directories(self, state, args, kwargs):
+ def include_directories(self, state: ModuleState, args: T.List[str], kwargs: TYPE_kwargs) -> build.IncludeDirs:
info = self._args_to_info(args)
return self.get_variable(state, [info['inc']], kwargs)
@noKwargs
@stringArgs
- def target(self, state, args, kwargs):
+ def target(self, state: ModuleState, args: T.List[str], kwargs: TYPE_kwargs) -> build.Target:
info = self._args_to_info(args)
return self.get_variable(state, [info['tgt']], kwargs)
@noKwargs
@stringArgs
- def target_type(self, state, args, kwargs):
+ def target_type(self, state: ModuleState, args: T.List[str], kwargs: TYPE_kwargs) -> str:
info = self._args_to_info(args)
return info['func']
@noPosargs
@noKwargs
- def target_list(self, state, args, kwargs):
+ def target_list(self, state: ModuleState, args: TYPE_var, kwargs: TYPE_kwargs) -> T.List[str]:
return self.cm_interpreter.target_list()
@noPosargs
@noKwargs
@FeatureNew('CMakeSubproject.found()', '0.53.2')
- def found_method(self, state, args, kwargs):
+ def found_method(self, state: ModuleState, args: TYPE_var, kwargs: TYPE_kwargs) -> bool:
return self.subp is not None
@@ -207,32 +209,32 @@ class CMakeSubprojectOptions(ModuleObject):
@typed_pos_args('subproject_options.add_cmake_defines', varargs=dict)
@noKwargs
- def add_cmake_defines(self, state, args, kwargs) -> None:
+ def add_cmake_defines(self, state: ModuleState, args: T.Tuple[T.List[T.Dict[str, TYPE_var]]], kwargs: TYPE_kwargs) -> None:
self.cmake_options += cmake_defines_to_args(args[0])
@typed_pos_args('subproject_options.set_override_option', str, str)
@permittedKwargs({'target'})
- def set_override_option(self, state, args, kwargs) -> None:
+ def set_override_option(self, state: ModuleState, args: T.Tuple[str, str], kwargs: TYPE_kwargs) -> None:
self._get_opts(kwargs).set_opt(args[0], args[1])
@typed_pos_args('subproject_options.set_install', bool)
@permittedKwargs({'target'})
- def set_install(self, state, args, kwargs) -> None:
+ def set_install(self, state: ModuleState, args: T.Tuple[bool], kwargs: TYPE_kwargs) -> None:
self._get_opts(kwargs).set_install(args[0])
@typed_pos_args('subproject_options.append_compile_args', str, varargs=str, min_varargs=1)
@permittedKwargs({'target'})
- def append_compile_args(self, state, args, kwargs) -> None:
+ def append_compile_args(self, state: ModuleState, args: T.Tuple[str, T.List[str]], kwargs: TYPE_kwargs) -> None:
self._get_opts(kwargs).append_args(args[0], args[1])
@typed_pos_args('subproject_options.append_compile_args', varargs=str, min_varargs=1)
@permittedKwargs({'target'})
- def append_link_args(self, state, args, kwargs) -> None:
+ def append_link_args(self, state: ModuleState, args: T.Tuple[T.List[str]], kwargs: TYPE_kwargs) -> None:
self._get_opts(kwargs).append_link_args(args[0])
@noPosargs
@noKwargs
- def clear(self, state, args, kwargs) -> None:
+ def clear(self, state: ModuleState, args: TYPE_var, kwargs: TYPE_kwargs) -> None:
self.cmake_options.clear()
self.target_options = TargetOptions()
@@ -243,7 +245,7 @@ class CmakeModule(ExtensionModule):
INFO = ModuleInfo('cmake', '0.50.0')
- def __init__(self, interpreter):
+ def __init__(self, interpreter: Interpreter) -> None:
super().__init__(interpreter)
self.methods.update({
'write_basic_package_version_file': self.write_basic_package_version_file,
@@ -252,7 +254,7 @@ class CmakeModule(ExtensionModule):
'subproject_options': self.subproject_options,
})
- def detect_voidp_size(self, env):
+ def detect_voidp_size(self, env: Environment) -> int:
compilers = env.coredata.compilers.host
compiler = compilers.get('c', None)
if not compiler:
@@ -263,7 +265,7 @@ class CmakeModule(ExtensionModule):
return compiler.sizeof('void *', '', env)[0]
- def detect_cmake(self, state):
+ def detect_cmake(self, state: ModuleState) -> bool:
if self.cmake_detected:
return True
@@ -295,7 +297,7 @@ class CmakeModule(ExtensionModule):
KwargInfo('version', str, required=True),
INSTALL_DIR_KW,
)
- def write_basic_package_version_file(self, state, args, kwargs: 'WriteBasicPackageVersionFile'):
+ def write_basic_package_version_file(self, state: ModuleState, args: TYPE_var, kwargs: 'WriteBasicPackageVersionFile') -> ModuleReturnValue:
arch_independent = kwargs['arch_independent']
compatibility = kwargs['compatibility']
name = kwargs['name']
@@ -325,7 +327,7 @@ class CmakeModule(ExtensionModule):
res = build.Data([mesonlib.File(True, state.environment.get_scratch_dir(), version_file)], pkgroot, pkgroot_name, None, state.subproject)
return ModuleReturnValue(res, [res])
- def create_package_file(self, infile, outfile, PACKAGE_RELATIVE_PATH, extra, confdata):
+ def create_package_file(self, infile: str, outfile: str, PACKAGE_RELATIVE_PATH: str, extra: str, confdata: build.ConfigurationData) -> None:
package_init = PACKAGE_INIT_BASE.replace('@PACKAGE_RELATIVE_PATH@', PACKAGE_RELATIVE_PATH)
package_init = package_init.replace('@inputFileName@', os.path.basename(infile))
package_init += extra
@@ -363,7 +365,7 @@ class CmakeModule(ExtensionModule):
KwargInfo('name', str, required=True),
INSTALL_DIR_KW,
)
- def configure_package_config_file(self, state, args, kwargs: 'ConfigurePackageConfigFile'):
+ def configure_package_config_file(self, state: ModuleState, args: TYPE_var, kwargs: 'ConfigurePackageConfigFile') -> build.Data:
inputfile = kwargs['input']
if isinstance(inputfile, str):
inputfile = mesonlib.File.from_source_file(state.environment.source_dir, state.subdir, inputfile)
@@ -440,8 +442,8 @@ class CmakeModule(ExtensionModule):
@FeatureNew('subproject_options', '0.55.0')
@noKwargs
@noPosargs
- def subproject_options(self, state, args, kwargs) -> CMakeSubprojectOptions:
+ def subproject_options(self, state: ModuleState, args: TYPE_var, kwargs: TYPE_kwargs) -> CMakeSubprojectOptions:
return CMakeSubprojectOptions()
-def initialize(*args, **kwargs):
+def initialize(*args: T.Any, **kwargs: T.Any) -> CmakeModule:
return CmakeModule(*args, **kwargs)