|
|
|
project('external library', 'c')
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
zlib = cc.find_library('z')
|
|
|
|
|
|
|
|
# Verify that link testing works.
|
|
|
|
linkcode = '''#include<zlib.h>
|
|
|
|
int main(void) {
|
|
|
|
void *ptr = (void*)(deflate);
|
|
|
|
return ptr == 0;
|
|
|
|
}
|
|
|
|
'''
|
|
|
|
|
|
|
|
nolinkcode='''int nonexisting();
|
|
|
|
int main(void) {
|
|
|
|
return nonexisting();
|
|
|
|
}
|
|
|
|
'''
|
|
|
|
|
|
|
|
assert(cc.links(linkcode, args : '-lz', name : 'Test link against zlib'), 'Linking test failed.')
|
|
|
|
d1 = declare_dependency(compile_args: '-DSOMETHING', link_args: '-lz')
|
|
|
|
assert(cc.links(linkcode, dependencies : d1,
|
|
|
|
name : 'Test link against zlib via declare_dependency'), 'Linking test failed.')
|
|
|
|
d2 = declare_dependency(dependencies: d1)
|
|
|
|
assert(cc.links(linkcode, dependencies : d2,
|
|
|
|
name : 'Test link against zlib via indirect declare_dependency'), 'Linking test failed.')
|
|
|
|
assert(not cc.links(nolinkcode, name : 'Failing link'), 'Linking succeeded when it should have failed.')
|
|
|
|
|
|
|
|
e = executable('zprog', 'prog.c', dependencies : zlib)
|
|
|
|
test('libtest', e)
|
|
|
|
|
|
|
|
e2 = executable('zprog_alt', 'prog.c', dependencies : zlib)
|
|
|
|
test('libtest_alt', e2)
|
|
|
|
|
|
|
|
# Test that ext deps work via an internal dep.
|
|
|
|
intdep = declare_dependency(dependencies : zlib)
|
|
|
|
exe2 = executable('zprog2', 'prog.c', dependencies : intdep)
|
|
|
|
test('libtest2', exe2)
|
|
|
|
|
|
|
|
# Test that deps that use find_library deps work.
|
|
|
|
depdep = declare_dependency(dependencies : intdep)
|
|
|
|
exe3 = executable('zprog3', 'prog.c', dependencies : depdep)
|
|
|
|
test('libtest3', exe3)
|