diff options
Diffstat (limited to 'meson/test cases/linuxlike/1 pkg-config/meson.build')
-rw-r--r-- | meson/test cases/linuxlike/1 pkg-config/meson.build | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/meson/test cases/linuxlike/1 pkg-config/meson.build b/meson/test cases/linuxlike/1 pkg-config/meson.build new file mode 100644 index 000000000..ca48e9bd0 --- /dev/null +++ b/meson/test cases/linuxlike/1 pkg-config/meson.build @@ -0,0 +1,53 @@ +project('external dependency', 'c') + +# Zlib is probably on all dev machines. + +dep = dependency('zlib', version : '>=1.2', + not_found_message: 'DANGER! DANGER! THIS MUST NEVER BE SEEN!') +exe = executable('zlibprog', 'prog-checkver.c', + dependencies : dep, + c_args : '-DFOUND_ZLIB="' + dep.version() + '"') + +assert(dep.version().version_compare('>=1.2'), 'Pkg-config version numbers exposed incorrectly.') + +# Check that the version exposed by zlib internally is the same as the one we +# retrieve from the pkg-config file. This assumes that the packager didn't mess +# up, but we can be reasonably sure of that. +test('zlibtest', exe) + +zprefix = dep.get_pkgconfig_variable('prefix') # Always set but we can't be sure what the value is. +# pkg-config returns empty string for not defined variables +assert(dep.get_pkgconfig_variable('nonexisting') == '', 'Value of unknown variable is not empty.') +# ... unless default: is used +assert(dep.get_pkgconfig_variable('nonexisting', default: 'foo') == 'foo', 'Value of unknown variable is not defaulted.') +# pkg-config is able to replace variables +assert(dep.get_pkgconfig_variable('prefix', define_variable: ['prefix', '/tmp']) == '/tmp', 'prefix variable has not been replaced.') + +# Test that dependencies of dependencies work. +dep2 = declare_dependency(dependencies : dep) +exe2 = executable('zlibprog2', 'prog.c', dependencies : dep2) +test('zlibtest2', exe2) + +# Try to find a nonexistent library to ensure requires:false works. + +dep = dependency('nvakuhrabnsdfasdf', required : false, + not_found_message : 'This dependency was not found as was expected.') + +# Try to compile a test that takes a dep and an include_directories + +cc = meson.get_compiler('c') +zlibdep = cc.find_library('z') +code = '''#include<myinc.h> + +int main(void) { + void * something = deflate; + if(something != 0) + return 0; + return 1; +} +''' + +inc = include_directories('incdir') + +r = cc.run(code, include_directories : inc, dependencies : zlibdep) +assert(r.returncode() == 0, 'Running manual zlib test failed.') |