diff options
-rw-r--r-- | ninjabackend.py | 10 | ||||
-rw-r--r-- | test cases/rust/2 sharedlib/meson.build | 2 | ||||
-rw-r--r-- | test cases/rust/2 sharedlib/prog.rs | 3 |
3 files changed, 15 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) diff --git a/test cases/rust/2 sharedlib/meson.build b/test cases/rust/2 sharedlib/meson.build index 88a0623..563ef15 100644 --- a/test cases/rust/2 sharedlib/meson.build +++ b/test cases/rust/2 sharedlib/meson.build @@ -1,3 +1,5 @@ project('rust shared library', 'rust') l = shared_library('stuff', 'stuff.rs') +e = executable('prog', 'prog.rs', link_with : l) +test('linktest', e) diff --git a/test cases/rust/2 sharedlib/prog.rs b/test cases/rust/2 sharedlib/prog.rs new file mode 100644 index 0000000..fbf3181 --- /dev/null +++ b/test cases/rust/2 sharedlib/prog.rs @@ -0,0 +1,3 @@ +extern crate stuff; + +fn main() { println!("printing: {}", stuff::explore()); } |