Added a link_depends keyword for build targets.

pull/15/head
Jussi Pakkanen 11 years ago
parent 9318203257
commit 26539f27fe
  1. 2
      backends.py
  2. 7
      build.py
  3. 5
      test cases/linuxlike/3 linker script/meson.build

@ -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:

@ -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)

Loading…
Cancel
Save