diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-12-27 00:46:00 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-12-27 00:46:00 +0200 |
commit | a04a10d29cc88e2b19454d8cbe92409543b44c9b (patch) | |
tree | 417ce1030233f8c043a49eb3155155ec44fbcf5c /backends.py | |
parent | 3500ddb8bb311bd99d2a76c6cd7bfe0788d5ad23 (diff) | |
download | meson-a04a10d29cc88e2b19454d8cbe92409543b44c9b.zip meson-a04a10d29cc88e2b19454d8cbe92409543b44c9b.tar.gz meson-a04a10d29cc88e2b19454d8cbe92409543b44c9b.tar.bz2 |
Handle generated sources in Unity builds.
Diffstat (limited to 'backends.py')
-rw-r--r-- | backends.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/backends.py b/backends.py index aab11d9..03bdb86 100644 --- a/backends.py +++ b/backends.py @@ -189,11 +189,18 @@ class Backend(): self.generate_pch(target, outfile) header_deps = gen_other_deps unity_src = [] + unity_deps = [] # Generated sources that must be built before compiling a Unity target. for genlist in target.get_generated_sources(): for src in genlist.get_outfilelist(): if not self.environment.is_header(src): if is_unity: - unity_src.append(src) + if '/' in src: + rel_src = src + else: + rel_src = os.path.join(self.get_target_private_dir(target), src) + unity_deps.append(rel_src) + abs_src = os.path.join(self.environment.get_build_dir(), rel_src) + unity_src.append(abs_src) else: obj_list.append(self.generate_single_compile(target, outfile, src, True)) else: @@ -224,7 +231,7 @@ class Backend(): raise MesonException('Unknown data type in object list.') if is_unity: for src in self.generate_unity_files(target, unity_src): - obj_list.append(self.generate_single_compile(target, outfile, src, True)) + obj_list.append(self.generate_single_compile(target, outfile, src, True, unity_deps)) linker = self.determine_linker(target, src_list) elem = self.generate_link(target, outfile, outname, obj_list, linker) self.generate_shlib_aliases(target, self.get_target_dir(target), outfile, elem) |