The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.6 KiB
57 lines
1.6 KiB
5 years ago
|
project('linker script', 'c')
|
||
|
|
||
|
# Static map file
|
||
|
mapfile = 'bob.map'
|
||
|
vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
|
||
|
|
||
|
l = shared_library('bob', 'bob.c', link_args : vflag, link_depends : mapfile)
|
||
|
e = executable('prog', 'prog.c', link_with : l)
|
||
|
test('core', e)
|
||
|
|
||
|
# configure_file
|
||
|
conf = configuration_data()
|
||
|
conf.set('in', 'bobMcBob')
|
||
|
m = configure_file(
|
||
|
input : 'bob.map.in',
|
||
|
output : 'bob-conf.map',
|
||
|
configuration : conf,
|
||
|
)
|
||
|
vflag = '-Wl,--version-script,@0@'.format(m)
|
||
|
|
||
|
l = shared_library('bob-conf', 'bob.c', link_args : vflag, link_depends : m)
|
||
|
e = executable('prog-conf', 'prog.c', link_with : l)
|
||
|
test('core', e)
|
||
|
|
||
|
# custom_target
|
||
|
python = find_program('python3')
|
||
|
m = custom_target(
|
||
|
'bob-ct.map',
|
||
|
command : [python, '@INPUT0@', '@INPUT1@', 'bob-ct.map'],
|
||
|
input : ['copy.py', 'bob.map'],
|
||
|
output : 'bob-ct.map',
|
||
|
depend_files : 'bob.map',
|
||
|
)
|
||
|
vflag = '-Wl,--version-script,@0@'.format(m.full_path())
|
||
|
|
||
|
l = shared_library('bob-ct', ['bob.c', m], link_args : vflag, link_depends : m)
|
||
|
e = executable('prog-ct', 'prog.c', link_with : l)
|
||
|
test('core', e)
|
||
|
|
||
|
# File
|
||
|
mapfile = files('bob.map')
|
||
|
vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile[0])
|
||
|
|
||
|
l = shared_library('bob-files', 'bob.c', link_args : vflag, link_depends : mapfile)
|
||
|
e = executable('prog-files', 'prog.c', link_with : l)
|
||
|
test('core', e)
|
||
|
|
||
|
subdir('sub')
|
||
|
|
||
|
# With map file in subdir
|
||
|
mapfile = 'sub/foo.map'
|
||
|
vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile)
|
||
|
|
||
|
l = shared_library('bar', 'bob.c', link_args : vflag, link_depends : mapfile)
|
||
|
e = executable('prog-bar', 'prog.c', link_with : l)
|
||
|
test('core', e)
|