diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-11-05 01:47:09 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-11-05 01:47:09 +0200 |
commit | 8f5d93b4d4a1b2eaca8ed42162506e1a5e326666 (patch) | |
tree | 668bf87538450e6f14fea55682bc57a2032fc0e8 /backends.py | |
parent | 337b14e6029d9a68398b5170ebd992f59e5aeeb0 (diff) | |
download | meson-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.py | 13 |
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() |