aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/build.py12
-rw-r--r--mesonbuild/interpreter/kwargs.py1
-rw-r--r--mesonbuild/interpreter/type_checking.py1
3 files changed, 5 insertions, 9 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 979672a..c1427be 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -2138,7 +2138,7 @@ class SharedLibrary(BuildTarget):
environment: environment.Environment,
compilers: T.Dict[str, 'Compiler'],
kwargs):
- self.soversion = None
+ self.soversion: T.Optional[str] = None
self.ltversion: T.Optional[str] = None
# Max length 2, first element is compatibility_version, second is current_version
self.darwin_versions = []
@@ -2351,14 +2351,8 @@ class SharedLibrary(BuildTarget):
if not self.environment.machines[self.for_machine].is_android():
# Shared library version
self.ltversion = T.cast('T.Optional[str]', kwargs.get('version'))
- # Try to extract/deduce the soversion
- if 'soversion' in kwargs:
- self.soversion = kwargs['soversion']
- if isinstance(self.soversion, int):
- self.soversion = str(self.soversion)
- if not isinstance(self.soversion, str):
- raise InvalidArguments('Shared library soversion is not a string or integer.')
- elif self.ltversion:
+ self.soversion = T.cast('T.Optional[str]', kwargs.get('soversion'))
+ if self.soversion is None and self.ltversion is not None:
# library version is defined, get the soversion from that
# We replicate what Autotools does here and take the first
# number of the version by default.
diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py
index e92f700..c463288 100644
--- a/mesonbuild/interpreter/kwargs.py
+++ b/mesonbuild/interpreter/kwargs.py
@@ -340,6 +340,7 @@ class StaticLibrary(_BuildTarget):
class _SharedLibMixin(TypedDict):
+ soversion: T.Optional[str]
version: T.Optional[str]
diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py
index 5ae189a..87a4d43 100644
--- a/mesonbuild/interpreter/type_checking.py
+++ b/mesonbuild/interpreter/type_checking.py
@@ -535,6 +535,7 @@ STATIC_LIB_KWS = [
# Arguments exclusive to SharedLibrary. These are separated to make integrating
# them into build_target easier
_EXCLUSIVE_SHARED_LIB_KWS: T.List[KwargInfo] = [
+ KwargInfo('soversion', (str, int, NoneType), convertor=lambda x: str(x) if x is not None else None),
KwargInfo('version', (str, NoneType), validator=_validate_shlib_version)
]