diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-25 21:06:25 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-25 22:00:38 +0300 |
commit | f3c793b9c1705f4eebbc68755bea7fe7926d123f (patch) | |
tree | 6588d4036bb6dd1a2b0f847b1e6cd870cc8dfb90 /test cases/prebuilt | |
parent | 5942baa2d186bff5a87df72a854ea1d9eac48e0c (diff) | |
download | meson-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.c | 5 | ||||
-rw-r--r-- | test cases/prebuilt/1 object/meson.build | 25 | ||||
-rw-r--r-- | test cases/prebuilt/1 object/source.c | 8 | ||||
-rw-r--r-- | test cases/prebuilt/2 static/libdir/best.c | 3 | ||||
-rw-r--r-- | test cases/prebuilt/2 static/libdir/best.h | 3 | ||||
-rw-r--r-- | test cases/prebuilt/2 static/libdir/meson.build | 5 | ||||
-rw-r--r-- | test cases/prebuilt/2 static/main.c | 7 | ||||
-rw-r--r-- | test cases/prebuilt/2 static/meson.build | 5 |
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)) |