aboutsummaryrefslogtreecommitdiff
path: root/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-11-05 01:47:09 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-11-05 01:47:09 +0200
commit8f5d93b4d4a1b2eaca8ed42162506e1a5e326666 (patch)
tree668bf87538450e6f14fea55682bc57a2032fc0e8 /backends.py
parent337b14e6029d9a68398b5170ebd992f59e5aeeb0 (diff)
downloadmeson-8f5d93b4d4a1b2eaca8ed42162506e1a5e326666.zip
meson-8f5d93b4d4a1b2eaca8ed42162506e1a5e326666.tar.gz
meson-8f5d93b4d4a1b2eaca8ed42162506e1a5e326666.tar.bz2
Can extract objects from targets and use them in other targets.
Diffstat (limited to 'backends.py')
-rw-r--r--backends.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/backends.py b/backends.py
index 989b658..10c48ed 100644
--- a/backends.py
+++ b/backends.py
@@ -174,13 +174,24 @@ class Backend():
for obj in target.get_objects():
if isinstance(obj, str):
o = os.path.join(self.build_to_src, target.get_subdir(), obj)
+ obj_list.append(o)
+ elif isinstance(obj, build.ExtractedObjects):
+ obj_list += self.determine_ext_objs(obj)
else:
raise MesonException('Unknown data type in object list.')
- obj_list.append(o)
elem = self.generate_link(target, outfile, outname, obj_list)
self.generate_shlib_aliases(target, self.get_target_dir(target), outfile, elem)
self.processed_targets[name] = True
+ def determine_ext_objs(self, extobj):
+ result = []
+ targetdir = self.get_target_private_dir(extobj.target)
+ suffix = '.' + self.environment.get_object_suffix()
+ for osrc in extobj.srclist:
+ objname = os.path.join(targetdir, os.path.basename(osrc) + suffix)
+ result.append(objname)
+ return result
+
def process_target_dependencies(self, target, outfile):
for t in target.get_dependencies():
tname = t.get_basename()