aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rwxr-xr-xinterpreter.py43
1 files changed, 39 insertions, 4 deletions
diff --git a/interpreter.py b/interpreter.py
index a85a0e5..3e9de62 100755
--- a/interpreter.py
+++ b/interpreter.py
@@ -238,6 +238,9 @@ class BuildTarget(InterpreterObject):
else:
self.extra_args[language] = flags
+ def get_aliaslist(self):
+ return []
+
class Executable(BuildTarget):
def __init__(self, name, subdir, sources, environment):
BuildTarget.__init__(self, name, subdir, sources)
@@ -258,10 +261,42 @@ class StaticLibrary(BuildTarget):
class SharedLibrary(BuildTarget):
def __init__(self, name, subdir, sources, environment):
BuildTarget.__init__(self, name, subdir, sources)
- prefix = environment.get_shared_lib_prefix()
- suffix = environment.get_shared_lib_suffix()
- self.filename = prefix + self.name + '.' + suffix
-
+ self.version = None
+ self.soversion = None
+ 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:
+ return fname
+ else:
+ return fname + '.' + self.version
+
+ def set_version_method(self, args):
+ v = args[0]
+ if not isinstance(v, str):
+ raise InvalidArguments('Shared library version is not a string.')
+ self.version = v
+
+ def set_soversion_method(self, args):
+ v = args[0]
+ if not isinstance(v, str):
+ raise InvalidArguments('Shared library soversion is not a string.')
+ self.soversion = v
+
+ def get_aliaslist(self):
+ aliases = []
+ if self.soversion is not None:
+ aliases.append(self.get_shbase() + '.' + self.soversion)
+ if self.version is not None:
+ aliases.append(self.get_shbase())
+ return aliases
class Test(InterpreterObject):
def __init__(self, name, exe):