summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/rust.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules/rust.py')
-rw-r--r--mesonbuild/modules/rust.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py
index 2c56a860e..c8b5d7482 100644
--- a/mesonbuild/modules/rust.py
+++ b/mesonbuild/modules/rust.py
@@ -26,7 +26,7 @@ from ..programs import ExternalProgram, NonExistingExternalProgram
if T.TYPE_CHECKING:
from . import ModuleState
- from ..build import IncludeDirs, LibTypes
+ from ..build import BuildTargetTypes, IncludeDirs, LibTypes
from ..compilers.rust import RustCompiler
from ..dependencies import Dependency, ExternalLibrary
from ..interpreter import Interpreter
@@ -44,7 +44,7 @@ if T.TYPE_CHECKING:
dependencies: T.List[T.Union[Dependency, ExternalLibrary]]
is_parallel: bool
link_with: T.List[LibTypes]
- link_whole: T.List[LibTypes]
+ link_whole: T.List[T.Union[StaticLibrary, CustomTarget, CustomTargetIndex]]
rust_args: T.List[str]
FuncTest = FuncRustTest[_kwargs.TestArgs]
@@ -179,16 +179,15 @@ class RustModule(ExtensionModule):
tkwargs['protocol'] = 'rust'
new_target_kwargs = base_target.original_kwargs.copy()
- # Don't mutate the shallow copied list, instead replace it with a new
- # one
+ del new_target_kwargs['rust_crate_type']
+ for kw in ('pic', 'prelink', 'rust_abi', 'version', 'soversion', 'darwin_versions'):
+ if kw in new_target_kwargs:
+ del new_target_kwargs[kw] # type: ignore[misc]
+
new_target_kwargs['install'] = False
new_target_kwargs['dependencies'] = new_target_kwargs.get('dependencies', []) + kwargs['dependencies']
- new_target_kwargs['link_with'] = new_target_kwargs.get('link_with', []) + kwargs['link_with']
+ new_target_kwargs['link_with'] = new_target_kwargs.get('link_with', []) + T.cast('T.List[BuildTargetTypes]', kwargs['link_with'])
new_target_kwargs['link_whole'] = new_target_kwargs.get('link_whole', []) + kwargs['link_whole']
- del new_target_kwargs['rust_crate_type']
- for kw in ['pic', 'prelink', 'rust_abi', 'version', 'soversion', 'darwin_versions']:
- if kw in new_target_kwargs:
- del new_target_kwargs[kw]
lang_args = base_target.extra_args.copy()
lang_args['rust'] = base_target.extra_args['rust'] + kwargs['rust_args'] + ['--test']