diff options
Diffstat (limited to 'meson/test cases/unit/18 pkgconfig static')
5 files changed, 73 insertions, 0 deletions
diff --git a/meson/test cases/unit/18 pkgconfig static/foo.c b/meson/test cases/unit/18 pkgconfig static/foo.c new file mode 100644 index 000000000..bf7fbddf3 --- /dev/null +++ b/meson/test cases/unit/18 pkgconfig static/foo.c @@ -0,0 +1,8 @@ +int power_level (void) +{ +#ifdef FOO_STATIC + return 9001; +#else + return 8999; +#endif +} diff --git a/meson/test cases/unit/18 pkgconfig static/foo.pc.in b/meson/test cases/unit/18 pkgconfig static/foo.pc.in new file mode 100644 index 000000000..b26c0b0a2 --- /dev/null +++ b/meson/test cases/unit/18 pkgconfig static/foo.pc.in @@ -0,0 +1,11 @@ +prefix=@PREFIX@ +libdir=${prefix} +includedir=${prefix}/include +datadir=${prefix}/data + +Name: libfoo +Description: A foo library. +Version: 1.0 +Libs: -L${libdir} -lfoo +Libs.private: -lm +Cflags: -I${includedir} diff --git a/meson/test cases/unit/18 pkgconfig static/include/foo.h b/meson/test cases/unit/18 pkgconfig static/include/foo.h new file mode 100644 index 000000000..88ef55494 --- /dev/null +++ b/meson/test cases/unit/18 pkgconfig static/include/foo.h @@ -0,0 +1,3 @@ +#pragma once + +int power_level (void); diff --git a/meson/test cases/unit/18 pkgconfig static/main.c b/meson/test cases/unit/18 pkgconfig static/main.c new file mode 100644 index 000000000..cc4649f71 --- /dev/null +++ b/meson/test cases/unit/18 pkgconfig static/main.c @@ -0,0 +1,14 @@ +#include <foo.h> +#include <stdio.h> + +int +main (int argc, char * argv[]) +{ + int value = power_level (); + if (value < 9000) { + printf ("Power level is %i\n", value); + return 1; + } + printf ("IT'S OVER 9000!!!\n"); + return 0; +} diff --git a/meson/test cases/unit/18 pkgconfig static/meson.build b/meson/test cases/unit/18 pkgconfig static/meson.build new file mode 100644 index 000000000..d1b0fd5ac --- /dev/null +++ b/meson/test cases/unit/18 pkgconfig static/meson.build @@ -0,0 +1,37 @@ +project('pkg-config static', 'c') + +if build_machine.system() != 'windows' + prefix = meson.source_root() +else + # pkg-config files should not use paths with \ + prefix_parts = meson.source_root().split('\\') + # If the path is C:/foo/bar, convert it to /c/foo/bar so we can test if our + # automatic conversion to C:/foo/bar inside PkgConfigDependency is working. + if prefix_parts[0][1] == ':' + drive = prefix_parts[0][0] + else + drive = prefix_parts[0] + endif + new_parts = [] + foreach part : prefix_parts + if part != prefix_parts[0] + new_parts += part + endif + endforeach + prefix = '/@0@/@1@'.format(drive, '/'.join(new_parts)) +endif +message(prefix) + +# Escape spaces +prefix_parts = prefix.split(' ') +prefix = '\ '.join(prefix_parts) + +conf = configuration_data() +conf.set('PREFIX', prefix) +configure_file(input : 'foo.pc.in', + output : 'foo.pc', + configuration : conf) + +foo_dep = dependency('foo', static : true) + +test('footest', executable('foomain', 'main.c', dependencies : foo_dep)) |