diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-09-04 00:37:28 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-09-04 00:37:28 +0300 |
commit | a90bbb727784fa27beb4ff07df97b9a07b471d62 (patch) | |
tree | d095a52a574288117dfddf0e6899224ecd94f1e7 /ninjabackend.py | |
parent | 0131555e28c2e6bb647dce9911b1b69ba88eeeaa (diff) | |
download | meson-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.py | 15 |
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) |