aboutsummaryrefslogtreecommitdiff
path: root/test cases/prebuilt
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-07-25 21:06:25 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-07-25 22:00:38 +0300
commitf3c793b9c1705f4eebbc68755bea7fe7926d123f (patch)
tree6588d4036bb6dd1a2b0f847b1e6cd870cc8dfb90 /test cases/prebuilt
parent5942baa2d186bff5a87df72a854ea1d9eac48e0c (diff)
downloadmeson-f3c793b9c1705f4eebbc68755bea7fe7926d123f.zip
meson-f3c793b9c1705f4eebbc68755bea7fe7926d123f.tar.gz
meson-f3c793b9c1705f4eebbc68755bea7fe7926d123f.tar.bz2
Added test for a prebuilt static library and a declare_dependency that uses it.
Diffstat (limited to 'test cases/prebuilt')
-rw-r--r--test cases/prebuilt/1 object/main.c5
-rw-r--r--test cases/prebuilt/1 object/meson.build25
-rw-r--r--test cases/prebuilt/1 object/source.c8
-rw-r--r--test cases/prebuilt/2 static/libdir/best.c3
-rw-r--r--test cases/prebuilt/2 static/libdir/best.h3
-rw-r--r--test cases/prebuilt/2 static/libdir/meson.build5
-rw-r--r--test cases/prebuilt/2 static/main.c7
-rw-r--r--test cases/prebuilt/2 static/meson.build5
8 files changed, 61 insertions, 0 deletions
diff --git a/test cases/prebuilt/1 object/main.c b/test cases/prebuilt/1 object/main.c
new file mode 100644
index 0000000..480bda5
--- /dev/null
+++ b/test cases/prebuilt/1 object/main.c
@@ -0,0 +1,5 @@
+int func();
+
+int main(int argc, char **argv) {
+ return func() == 42 ? 0 : 99;
+}
diff --git a/test cases/prebuilt/1 object/meson.build b/test cases/prebuilt/1 object/meson.build
new file mode 100644
index 0000000..92f966b
--- /dev/null
+++ b/test cases/prebuilt/1 object/meson.build
@@ -0,0 +1,25 @@
+# This test is on its own because it is special.
+# To run the test you need the prebuilt object
+# file for the given platform.
+#
+# Combined with cross compilation this would make
+# the state space explode so let's just keep this
+# in its own subdir so it's not run during cross
+# compilation tests.
+
+project('prebuilt object', 'c')
+
+if host_machine.system() == 'windows'
+ prebuilt = 'prebuilt.obj'
+else
+ prebuilt = 'prebuilt.o'
+endif
+
+# Remember: do not put source.c in this
+# declaration. run_tests.py generates the
+# prebuilt object before running this test.
+
+e = executable('prog', 'main.c',
+objects : prebuilt)
+
+test('objtest', e)
diff --git a/test cases/prebuilt/1 object/source.c b/test cases/prebuilt/1 object/source.c
new file mode 100644
index 0000000..f39b4f3
--- /dev/null
+++ b/test cases/prebuilt/1 object/source.c
@@ -0,0 +1,8 @@
+/*
+ * Compile this manually on new platforms and add the
+ * object file to revision control and Meson configuration.
+ */
+
+int func() {
+ return 42;
+}
diff --git a/test cases/prebuilt/2 static/libdir/best.c b/test cases/prebuilt/2 static/libdir/best.c
new file mode 100644
index 0000000..ab774e1
--- /dev/null
+++ b/test cases/prebuilt/2 static/libdir/best.c
@@ -0,0 +1,3 @@
+const char *msg() {
+ return "I am the best.";
+}
diff --git a/test cases/prebuilt/2 static/libdir/best.h b/test cases/prebuilt/2 static/libdir/best.h
new file mode 100644
index 0000000..063017f
--- /dev/null
+++ b/test cases/prebuilt/2 static/libdir/best.h
@@ -0,0 +1,3 @@
+#pragma once
+
+const char *msg();
diff --git a/test cases/prebuilt/2 static/libdir/meson.build b/test cases/prebuilt/2 static/libdir/meson.build
new file mode 100644
index 0000000..8d74ccf
--- /dev/null
+++ b/test cases/prebuilt/2 static/libdir/meson.build
@@ -0,0 +1,5 @@
+cc = meson.get_compiler('c')
+stlib = cc.find_library('best', dirs : meson.current_source_dir())
+
+best_dep = declare_dependency(dependencies : stlib,
+ include_directories : include_directories('.'))
diff --git a/test cases/prebuilt/2 static/main.c b/test cases/prebuilt/2 static/main.c
new file mode 100644
index 0000000..d172625
--- /dev/null
+++ b/test cases/prebuilt/2 static/main.c
@@ -0,0 +1,7 @@
+#include<stdio.h>
+#include<best.h>
+
+int main(int argc, char **argv) {
+ printf("%s\n", msg());
+ return 0;
+}
diff --git a/test cases/prebuilt/2 static/meson.build b/test cases/prebuilt/2 static/meson.build
new file mode 100644
index 0000000..9ea1d0d
--- /dev/null
+++ b/test cases/prebuilt/2 static/meson.build
@@ -0,0 +1,5 @@
+project('prebuilt static lib', 'c')
+
+subdir('libdir')
+
+test('static', executable('mainprog', 'main.c', dependencies : best_dep))