summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreterobjects.py
diff options
context:
space:
mode:
authorCharles Brunet <charles.brunet@optelgroup.com>2023-12-13 16:02:11 -0500
committerDylan Baker <dylan@pnwbakers.com>2024-09-06 10:56:44 -0700
commitce1602c1ee573f98ab409bcc645d9c7a07925836 (patch)
treebcd69f82bdff413119ccbc80544dfeef37a8eb38 /mesonbuild/interpreter/interpreterobjects.py
parent0fc363021e5c2e79a68fb33e60b72b8ffd353875 (diff)
downloadmeson-ce1602c1ee573f98ab409bcc645d9c7a07925836.tar.gz
alias_target with both_libs builds both
Diffstat (limited to 'mesonbuild/interpreter/interpreterobjects.py')
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index 155cfd23e..2cd55321b 100644
--- a/mesonbuild/interpreter/interpreterobjects.py
+++ b/mesonbuild/interpreter/interpreterobjects.py
@@ -41,6 +41,10 @@ if T.TYPE_CHECKING:
separator: str
+ class InternalDependencyAsKW(TypedDict):
+
+ recursive: bool
+
_ERROR_MSG_KW: KwargInfo[T.Optional[str]] = KwargInfo('error_message', (str, NoneType))
@@ -462,6 +466,8 @@ class DependencyHolder(ObjectHolder[Dependency]):
'include_type': self.include_type_method,
'as_system': self.as_system_method,
'as_link_whole': self.as_link_whole_method,
+ 'as_static': self.as_static_method,
+ 'as_shared': self.as_shared_method,
})
def found(self) -> bool:
@@ -580,6 +586,28 @@ class DependencyHolder(ObjectHolder[Dependency]):
new_dep = self.held_object.generate_link_whole_dependency()
return new_dep
+ @FeatureNew('dependency.as_static', '1.6.0')
+ @noPosargs
+ @typed_kwargs(
+ 'dependency.as_static',
+ KwargInfo('recursive', bool, default=False),
+ )
+ def as_static_method(self, args: T.List[TYPE_var], kwargs: InternalDependencyAsKW) -> Dependency:
+ if not isinstance(self.held_object, InternalDependency):
+ raise InterpreterException('as_static method is only supported on declare_dependency() objects')
+ return self.held_object.get_as_static(kwargs['recursive'])
+
+ @FeatureNew('dependency.as_shared', '1.6.0')
+ @noPosargs
+ @typed_kwargs(
+ 'dependency.as_shared',
+ KwargInfo('recursive', bool, default=False),
+ )
+ def as_shared_method(self, args: T.List[TYPE_var], kwargs: InternalDependencyAsKW) -> Dependency:
+ if not isinstance(self.held_object, InternalDependency):
+ raise InterpreterException('as_shared method is only supported on declare_dependency() objects')
+ return self.held_object.get_as_shared(kwargs['recursive'])
+
_EXTPROG = T.TypeVar('_EXTPROG', bound=ExternalProgram)
class _ExternalProgramHolder(ObjectHolder[_EXTPROG]):