aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/unit/18 pkgconfig static
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/unit/18 pkgconfig static')
-rw-r--r--meson/test cases/unit/18 pkgconfig static/foo.c8
-rw-r--r--meson/test cases/unit/18 pkgconfig static/foo.pc.in11
-rw-r--r--meson/test cases/unit/18 pkgconfig static/include/foo.h3
-rw-r--r--meson/test cases/unit/18 pkgconfig static/main.c14
-rw-r--r--meson/test cases/unit/18 pkgconfig static/meson.build37
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))