diff options
Diffstat (limited to 'test cases/linuxlike/2 external library/meson.build')
-rw-r--r-- | test cases/linuxlike/2 external library/meson.build | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test cases/linuxlike/2 external library/meson.build b/test cases/linuxlike/2 external library/meson.build new file mode 100644 index 0000000..3188ebf --- /dev/null +++ b/test cases/linuxlike/2 external library/meson.build @@ -0,0 +1,43 @@ +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) |