aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-12-18 20:08:00 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2017-12-18 20:58:43 +0200
commit658442bef43c92da9efb1213e7fb25be85532eb1 (patch)
tree63ae4f79b6f73bc86b43bb3c7b605187244bf719 /mesonbuild/backend/ninjabackend.py
parentb949c4792d5893dabbc0cb3dcc2f58aa173d8efc (diff)
downloadmeson-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.py10
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(