aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-04-03 18:12:18 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2016-04-03 18:12:18 +0300
commit873ffe782c178530e9c81da738d4b9ec9d13da86 (patch)
treef54327da69fce6788e9a5412258eadf444abf3d6 /test cases
parente0792295bc6828ff9c603e8670628bce93ff248a (diff)
parent1713fa02970ca2a045b1635186fef718620bf1b3 (diff)
downloadmeson-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')
-rw-r--r--test cases/failing/28 no vs module defs/meson.build9
-rw-r--r--test cases/failing/28 no vs module defs/prog.c5
-rw-r--r--test cases/failing/28 no vs module defs/subdir/meson.build1
-rw-r--r--test cases/failing/28 no vs module defs/subdir/somedll.c7
-rw-r--r--test cases/windows/6 vs module defs/meson.build7
-rw-r--r--test cases/windows/6 vs module defs/prog.c5
-rw-r--r--test cases/windows/6 vs module defs/subdir/meson.build1
-rw-r--r--test cases/windows/6 vs module defs/subdir/somedll.c5
-rw-r--r--test cases/windows/6 vs module defs/subdir/somedll.def3
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
+