aboutsummaryrefslogtreecommitdiff
path: root/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-09-04 00:37:28 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-09-04 00:37:28 +0300
commita90bbb727784fa27beb4ff07df97b9a07b471d62 (patch)
treed095a52a574288117dfddf0e6899224ecd94f1e7 /ninjabackend.py
parent0131555e28c2e6bb647dce9911b1b69ba88eeeaa (diff)
downloadmeson-a90bbb727784fa27beb4ff07df97b9a07b471d62.zip
meson-a90bbb727784fa27beb4ff07df97b9a07b471d62.tar.gz
meson-a90bbb727784fa27beb4ff07df97b9a07b471d62.tar.bz2
Finally full test suite passes, even gir.
Diffstat (limited to 'ninjabackend.py')
-rw-r--r--ninjabackend.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/ninjabackend.py b/ninjabackend.py
index c4b792a..47068e7 100644
--- a/ninjabackend.py
+++ b/ninjabackend.py
@@ -306,9 +306,20 @@ class NinjaBackend(backends.Backend):
cmd += srcs
elif i == '@OUTPUT@':
cmd += ofilenames
- elif '@OUTDIR@' in i:
- cmd.append(i.replace('@OUTDIR@', self.get_target_dir(target)))
else:
+ if '@OUTDIR@' in i:
+ i = i.replace('@OUTDIR@', self.get_target_dir(target))
+ elif '@PRIVATE_OUTDIR_' in i:
+ match = re.search('@PRIVATE_OUTDIR_(ABS_)?([a-zA-Z@:]*)@', i)
+ source = match.group(0)
+ if match.group(1) is None:
+ lead_dir = ''
+ else:
+ lead_dir = self.environment.get_build_dir()
+ target_id = match.group(2)
+ i = i.replace(source,
+ os.path.join(lead_dir,
+ self.get_target_dir(self.build.targets[target_id])))
cmd.append(i)
elem.add_item('COMMAND', cmd)