aboutsummaryrefslogtreecommitdiff
path: root/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-06-19 00:25:15 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-06-19 00:25:15 +0300
commit7b4595e07c6da1c147a6d0f5df8c2bd24b6b46ae (patch)
treedba2b9ff376c4ab023695e0e0cbc6570fcd412fb /ninjabackend.py
parentbf4708eb832538189b1e878cd11cb7888d7f2c70 (diff)
downloadmeson-7b4595e07c6da1c147a6d0f5df8c2bd24b6b46ae.zip
meson-7b4595e07c6da1c147a6d0f5df8c2bd24b6b46ae.tar.gz
meson-7b4595e07c6da1c147a6d0f5df8c2bd24b6b46ae.tar.bz2
Set up dependencies for Rust linking. Does not work fully yet.
Diffstat (limited to 'ninjabackend.py')
-rw-r--r--ninjabackend.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/ninjabackend.py b/ninjabackend.py
index 543cc12..1f3bfab 100644
--- a/ninjabackend.py
+++ b/ninjabackend.py
@@ -514,7 +514,17 @@ class NinjaBackend(backends.Backend):
depfile = target.name + '.d'
flags += ['--out-dir', target.subdir, '-o', target.get_filename()]
flags += ['--dep-info', depfile]
+ orderdeps = [os.path.join(t.subdir, t.get_filename()) for t in target.link_targets]
+ linkdirs = {}
+ for d in target.link_targets:
+ linkdirs[d.subdir] = True
+ for d in linkdirs.keys():
+ if d == '':
+ d = '.'
+ flags += ['-L', d]
element = NinjaBuildElement(target_name, 'rust_COMPILER', relsrc)
+ if len(orderdeps) > 0:
+ element.add_orderdep(orderdeps)
element.add_item('FLAGS', flags)
element.add_item('targetdep', depfile)
element.write(outfile)