diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-04-03 18:12:18 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-04-03 18:12:18 +0300 |
commit | 873ffe782c178530e9c81da738d4b9ec9d13da86 (patch) | |
tree | f54327da69fce6788e9a5412258eadf444abf3d6 /test cases | |
parent | e0792295bc6828ff9c603e8670628bce93ff248a (diff) | |
parent | 1713fa02970ca2a045b1635186fef718620bf1b3 (diff) | |
download | meson-873ffe782c178530e9c81da738d4b9ec9d13da86.zip meson-873ffe782c178530e9c81da738d4b9ec9d13da86.tar.gz meson-873ffe782c178530e9c81da738d4b9ec9d13da86.tar.bz2 |
Merge pull request #390 from nirbheek/msvc-module-defs
Add support for passing a module definitions file for exporting symbols while linking
Diffstat (limited to 'test cases')
9 files changed, 43 insertions, 0 deletions
diff --git a/test cases/failing/28 no vs module defs/meson.build b/test cases/failing/28 no vs module defs/meson.build new file mode 100644 index 0000000..7864daa --- /dev/null +++ b/test cases/failing/28 no vs module defs/meson.build @@ -0,0 +1,9 @@ +project('dll_no_module_def', 'c') + +if meson.get_compiler('c').get_id() != 'msvc' + error('Need to use the Visual Studio compiler') +endif + +subdir('subdir') +exe = executable('prog', 'prog.c', link_with : shlib) +test('runtest', exe) diff --git a/test cases/failing/28 no vs module defs/prog.c b/test cases/failing/28 no vs module defs/prog.c new file mode 100644 index 0000000..f35f4a0 --- /dev/null +++ b/test cases/failing/28 no vs module defs/prog.c @@ -0,0 +1,5 @@ +int somedllfunc(); + +int main(int argc, char **argv) { + return somedllfunc() == 42 ? 0 : 1; +} diff --git a/test cases/failing/28 no vs module defs/subdir/meson.build b/test cases/failing/28 no vs module defs/subdir/meson.build new file mode 100644 index 0000000..8395d59 --- /dev/null +++ b/test cases/failing/28 no vs module defs/subdir/meson.build @@ -0,0 +1 @@ +shlib = shared_library('somedll', 'somedll.c') diff --git a/test cases/failing/28 no vs module defs/subdir/somedll.c b/test cases/failing/28 no vs module defs/subdir/somedll.c new file mode 100644 index 0000000..5c469b1 --- /dev/null +++ b/test cases/failing/28 no vs module defs/subdir/somedll.c @@ -0,0 +1,7 @@ +/* With MSVC, the DLL created from this will not export any symbols + * without a module definitions file specified while linking */ +#ifdef _MSC_VER +int somedllfunc() { + return 42; +} +#endif diff --git a/test cases/windows/6 vs module defs/meson.build b/test cases/windows/6 vs module defs/meson.build new file mode 100644 index 0000000..4b9e735 --- /dev/null +++ b/test cases/windows/6 vs module defs/meson.build @@ -0,0 +1,7 @@ +project('dll_module_defs', 'c') + +if meson.get_compiler('c').get_id() == 'msvc' + subdir('subdir') + exe = executable('prog', 'prog.c', link_with : shlib) + test('runtest', exe) +endif diff --git a/test cases/windows/6 vs module defs/prog.c b/test cases/windows/6 vs module defs/prog.c new file mode 100644 index 0000000..f35f4a0 --- /dev/null +++ b/test cases/windows/6 vs module defs/prog.c @@ -0,0 +1,5 @@ +int somedllfunc(); + +int main(int argc, char **argv) { + return somedllfunc() == 42 ? 0 : 1; +} diff --git a/test cases/windows/6 vs module defs/subdir/meson.build b/test cases/windows/6 vs module defs/subdir/meson.build new file mode 100644 index 0000000..60633c3 --- /dev/null +++ b/test cases/windows/6 vs module defs/subdir/meson.build @@ -0,0 +1 @@ +shlib = shared_library('somedll', 'somedll.c', vs_module_defs : 'somedll.def') diff --git a/test cases/windows/6 vs module defs/subdir/somedll.c b/test cases/windows/6 vs module defs/subdir/somedll.c new file mode 100644 index 0000000..df255e3 --- /dev/null +++ b/test cases/windows/6 vs module defs/subdir/somedll.c @@ -0,0 +1,5 @@ +#ifdef _MSC_VER +int somedllfunc() { + return 42; +} +#endif diff --git a/test cases/windows/6 vs module defs/subdir/somedll.def b/test cases/windows/6 vs module defs/subdir/somedll.def new file mode 100644 index 0000000..217801b --- /dev/null +++ b/test cases/windows/6 vs module defs/subdir/somedll.def @@ -0,0 +1,3 @@ +EXPORTS + somedllfunc + |