aboutsummaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-10-04 23:04:26 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-10-04 23:04:26 +0300
commit3673791b4f7d8fbc290629b1173fff91d7aee781 (patch)
tree369732a900d2a15e8e0e3de8506b3fbfb7dc6a6c /build.py
parent2e656bce021e22113014470d2ef04ae46ff938c9 (diff)
downloadmeson-3673791b4f7d8fbc290629b1173fff91d7aee781.zip
meson-3673791b4f7d8fbc290629b1173fff91d7aee781.tar.gz
meson-3673791b4f7d8fbc290629b1173fff91d7aee781.tar.bz2
Rpaths start working.
Diffstat (limited to 'build.py')
-rw-r--r--build.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/build.py b/build.py
index 67d1303..64125a8 100644
--- a/build.py
+++ b/build.py
@@ -108,7 +108,7 @@ class BuildTarget():
self.process_kwargs(kwargs)
if len(self.sources) == 0 and len(self.generated) == 0:
raise InvalidArguments('Build target %s has no sources.' % name)
-
+
def process_sourcelist(self, sources):
if not isinstance(sources, list):
sources = [sources]
@@ -143,6 +143,15 @@ class BuildTarget():
newd.append(i)
self.kwargs['deps'] = newd
+ def get_rpaths(self):
+ return self.get_transitive_rpaths()
+
+ def get_transitive_rpaths(self):
+ result = []
+ for i in self.link_targets:
+ result += i.get_rpaths()
+ return result
+
def process_kwargs(self, kwargs):
self.copy_kwargs(kwargs)
kwargs.get('modules', [])
@@ -404,6 +413,9 @@ class SharedLibrary(BuildTarget):
def get_shbase(self):
return self.prefix + self.name + '.' + self.suffix
+ def get_rpaths(self):
+ return [self.subdir] + self.get_transitive_rpaths()
+
def get_filename(self):
fname = self.get_shbase()
if self.version is None: