diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-07 20:10:59 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-07 20:10:59 +0200 |
commit | 26539f27fea7821e012aea5d7d609df891abd61a (patch) | |
tree | 8f4233ad755b37b72c491c89101da3fbe09616c6 | |
parent | 9318203257c85209b5c60a9dc2cb59c5feaae23d (diff) | |
download | meson-26539f27fea7821e012aea5d7d609df891abd61a.zip meson-26539f27fea7821e012aea5d7d609df891abd61a.tar.gz meson-26539f27fea7821e012aea5d7d609df891abd61a.tar.bz2 |
Added a link_depends keyword for build targets.
-rw-r--r-- | backends.py | 2 | ||||
-rw-r--r-- | build.py | 7 | ||||
-rw-r--r-- | test cases/linuxlike/3 linker script/meson.build | 5 |
3 files changed, 12 insertions, 2 deletions
diff --git a/backends.py b/backends.py index 3ab63d7..4692a46 100644 --- a/backends.py +++ b/backends.py @@ -1013,6 +1013,8 @@ class NinjaBackend(Backend): if self.environment.coredata.coverage: commands += linker.get_coverage_link_flags() dep_targets = [self.get_dependency_filename(t) for t in dependencies] + dep_targets += [os.path.join(self.environment.source_dir, + target.subdir, t) for t in target.link_depends] elem = NinjaBuildElement(outname, linker_rule, obj_list) elem.add_dep(dep_targets) elem.add_item('LINK_FLAGS', commands) @@ -113,6 +113,7 @@ class BuildTarget(): self.external_deps = [] self.include_dirs = [] self.link_targets = [] + self.link_depends = [] self.filename = 'no_name' self.need_install = False self.pch = {} @@ -233,6 +234,12 @@ class BuildTarget(): for i in self.link_flags: if not isinstance(i, str): raise InvalidArguments('Link_flags arguments must be strings.') + self.link_depends = kwargs.get('link_depends', []) + if not isinstance(self.link_depends, list): + self.link_depends = [self.link_depends] + for i in self.link_depends: + if not isinstance(i, str): + raise InvalidArguments('Link_depends arguments must be strings.') if 'version' in kwargs: self.set_version(kwargs['version']) if 'soversion' in kwargs: diff --git a/test cases/linuxlike/3 linker script/meson.build b/test cases/linuxlike/3 linker script/meson.build index 30fcf62..57acf6d 100644 --- a/test cases/linuxlike/3 linker script/meson.build +++ b/test cases/linuxlike/3 linker script/meson.build @@ -1,7 +1,8 @@ project('linker script', 'c') -vflag = '-Wl,--version-script,@0@/bob.map'.format(meson.current_source_dir()) +mapfile = 'bob.map' +vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile) -l = shared_library('bob', 'bob.c', link_flags : vflag) +l = shared_library('bob', 'bob.c', link_flags : vflag, link_depends : mapfile) e = executable('prog', 'prog.c', link_with : l) test('core', e) |