diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-12-18 20:08:00 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-12-18 20:58:43 +0200 |
commit | 658442bef43c92da9efb1213e7fb25be85532eb1 (patch) | |
tree | 63ae4f79b6f73bc86b43bb3c7b605187244bf719 /mesonbuild/backend/ninjabackend.py | |
parent | b949c4792d5893dabbc0cb3dcc2f58aa173d8efc (diff) | |
download | meson-658442bef43c92da9efb1213e7fb25be85532eb1.zip meson-658442bef43c92da9efb1213e7fb25be85532eb1.tar.gz meson-658442bef43c92da9efb1213e7fb25be85532eb1.tar.bz2 |
Can declare file generation in one dir and use the output in another.
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 1057892..3fb37ea 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1787,8 +1787,11 @@ rule FORTRAN_DEP_HACK continue self.generate_genlist_for_target(genlist, target, outfile) - def replace_paths(self, target, args): - source_target_dir = self.get_target_source_dir(target) + def replace_paths(self, target, args, override_subdir=None): + if override_subdir: + source_target_dir = os.path.join(self.build_to_src, override_subdir) + else: + source_target_dir = self.get_target_source_dir(target) relout = self.get_target_private_dir(target) args = [x.replace("@SOURCE_DIR@", self.build_to_src).replace("@BUILD_DIR@", relout) for x in args] @@ -1799,6 +1802,7 @@ rule FORTRAN_DEP_HACK def generate_genlist_for_target(self, genlist, target, outfile): generator = genlist.get_generator() + subdir = genlist.subdir exe = generator.get_exe() exe_arr = self.exe_object_to_cmd_array(exe) infilelist = genlist.get_inputs() @@ -1830,7 +1834,7 @@ rule FORTRAN_DEP_HACK if sole_output == '': outfilelist = outfilelist[len(generator.outputs):] relout = self.get_target_private_dir(target) - args = self.replace_paths(target, args) + args = self.replace_paths(target, args, override_subdir=subdir) cmdlist = exe_arr + self.replace_extra_args(args, genlist) if generator.capture: exe_data = self.serialize_executable( |