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.
 
 
 
 
 
 

21 lines
972 B

project('shared module resolving symbol in executable', 'c')
# The shared module contains a reference to the symbol 'func_from_executable',
# which is always provided by the executable which loads it. This symbol can be
# resolved at run-time by an ELF loader. But when building PE/COFF objects, all
# symbols must be resolved at link-time, so an implib is generated for the
# executable, and the shared module linked with it.
#
# See testcase 125 for an example of the more complex portability gymnastics
# required if we do not know (at link-time) what provides the symbol.
link_flags = []
if host_machine.system() != 'windows'
# Needed to export dynamic symbols from the executable
link_flags += ['-rdynamic']
endif
dl = meson.get_compiler('c').find_library('dl', required: false)
e = executable('prog', 'prog.c', dependencies: dl, implib: true, link_args: link_flags)
m = shared_module('module', 'module.c', link_with: e)
test('test', e, args: m.full_path())