aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-10 03:09:59 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-10 03:09:59 +0200
commitba41aeeec2672ebd84f175ca48577f10279f73c7 (patch)
tree2a74ddfe33931c238c533850c0dc6e4e73a7ad69
parent93906894a9e4e3b87e72f32dc0dd7d9509b18abe (diff)
downloadmeson-ba41aeeec2672ebd84f175ca48577f10279f73c7.zip
meson-ba41aeeec2672ebd84f175ca48577f10279f73c7.tar.gz
meson-ba41aeeec2672ebd84f175ca48577f10279f73c7.tar.bz2
Can specify library versions with keyword arguments.
-rwxr-xr-xinterpreter.py26
-rw-r--r--test cases/27 library versions/builder.txt9
2 files changed, 17 insertions, 18 deletions
diff --git a/interpreter.py b/interpreter.py
index 835474a..d85f316 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -181,6 +181,10 @@ class BuildTarget(InterpreterObject):
if not isinstance(cxxlist, list):
cxxlist = [cxxlist]
self.add_compiler_args('cxx', cxxlist)
+ if 'version' in kwargs:
+ self.set_version(kwargs['version'])
+ if 'soversion' in kwargs:
+ self.set_soversion(kwargs['soversion'])
def get_subdir(self):
return self.subdir
@@ -273,17 +277,15 @@ class StaticLibrary(BuildTarget):
class SharedLibrary(BuildTarget):
def __init__(self, name, subdir, sources, environment, kwargs):
- BuildTarget.__init__(self, name, subdir, sources, kwargs)
self.version = None
self.soversion = None
+ BuildTarget.__init__(self, name, subdir, sources, kwargs)
self.prefix = environment.get_shared_lib_prefix()
self.suffix = environment.get_shared_lib_suffix()
- self.methods.update({'set_version' : self.set_version_method,
- 'set_soversion' : self.set_soversion_method,
- })
-
+
def get_shbase(self):
return self.prefix + self.name + '.' + self.suffix
+
def get_filename(self):
fname = self.get_shbase()
if self.version is None:
@@ -291,17 +293,15 @@ class SharedLibrary(BuildTarget):
else:
return fname + '.' + self.version
- def set_version_method(self, args):
- v = args[0]
- if not isinstance(v, str):
+ def set_version(self, version):
+ if not isinstance(version, str):
raise InvalidArguments('Shared library version is not a string.')
- self.version = v
+ self.version = version
- def set_soversion_method(self, args):
- v = args[0]
- if not isinstance(v, str):
+ def set_soversion(self, version):
+ if not isinstance(version, str):
raise InvalidArguments('Shared library soversion is not a string.')
- self.soversion = v
+ self.soversion = version
def get_aliaslist(self):
aliases = []
diff --git a/test cases/27 library versions/builder.txt b/test cases/27 library versions/builder.txt
index a2d87f5..cebcd64 100644
--- a/test cases/27 library versions/builder.txt
+++ b/test cases/27 library versions/builder.txt
@@ -1,7 +1,6 @@
project('library versions', 'c')
-lib = shared_library('somelib', 'lib.c')
-lib.set_version('1.2.3')
-lib.set_soversion('0')
-
-lib.install()
+lib = shared_library('somelib', 'lib.c', \
+version : '1.2.3', \
+soversion : '0', \
+install : true)