aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/unit/29 guessed linker dependencies
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/unit/29 guessed linker dependencies')
-rw-r--r--meson/test cases/unit/29 guessed linker dependencies/exe/app.c6
-rw-r--r--meson/test cases/unit/29 guessed linker dependencies/exe/meson.build7
-rw-r--r--meson/test cases/unit/29 guessed linker dependencies/lib/lib.c20
-rw-r--r--meson/test cases/unit/29 guessed linker dependencies/lib/meson.build11
-rw-r--r--meson/test cases/unit/29 guessed linker dependencies/lib/meson_options.txt1
5 files changed, 45 insertions, 0 deletions
diff --git a/meson/test cases/unit/29 guessed linker dependencies/exe/app.c b/meson/test cases/unit/29 guessed linker dependencies/exe/app.c
new file mode 100644
index 000000000..29c8d9c9a
--- /dev/null
+++ b/meson/test cases/unit/29 guessed linker dependencies/exe/app.c
@@ -0,0 +1,6 @@
+void liba_func();
+
+int main(void) {
+ liba_func();
+ return 0;
+}
diff --git a/meson/test cases/unit/29 guessed linker dependencies/exe/meson.build b/meson/test cases/unit/29 guessed linker dependencies/exe/meson.build
new file mode 100644
index 000000000..8bb1bd7f6
--- /dev/null
+++ b/meson/test cases/unit/29 guessed linker dependencies/exe/meson.build
@@ -0,0 +1,7 @@
+project('exe', ['c'])
+
+executable('app',
+ 'app.c',
+ # Use uninterpreted strings to avoid path finding by dependency or compiler.find_library
+ link_args: ['-ltest-lib']
+ )
diff --git a/meson/test cases/unit/29 guessed linker dependencies/lib/lib.c b/meson/test cases/unit/29 guessed linker dependencies/lib/lib.c
new file mode 100644
index 000000000..1a8f94ddb
--- /dev/null
+++ b/meson/test cases/unit/29 guessed linker dependencies/lib/lib.c
@@ -0,0 +1,20 @@
+#if defined _WIN32
+ #define DLL_PUBLIC __declspec(dllexport)
+#else
+ #if defined __GNUC__
+ #define DLL_PUBLIC __attribute__ ((visibility("default")))
+ #else
+ #pragma message ("Compiler does not support symbol visibility.")
+ #define DLL_PUBLIC
+ #endif
+#endif
+
+void DLL_PUBLIC liba_func() {
+}
+
+#ifdef MORE_EXPORTS
+
+void DLL_PUBLIC libb_func() {
+}
+
+#endif
diff --git a/meson/test cases/unit/29 guessed linker dependencies/lib/meson.build b/meson/test cases/unit/29 guessed linker dependencies/lib/meson.build
new file mode 100644
index 000000000..36df112b2
--- /dev/null
+++ b/meson/test cases/unit/29 guessed linker dependencies/lib/meson.build
@@ -0,0 +1,11 @@
+project('lib1', ['c'])
+
+c_args = []
+
+# Microsoft's compiler is quite smart about touching import libs on changes,
+# so ensure that there is actually a change in symbols.
+if get_option('more_exports')
+ c_args += '-DMORE_EXPORTS'
+endif
+
+a = library('test-lib', 'lib.c', c_args: c_args, install: true)
diff --git a/meson/test cases/unit/29 guessed linker dependencies/lib/meson_options.txt b/meson/test cases/unit/29 guessed linker dependencies/lib/meson_options.txt
new file mode 100644
index 000000000..2123e457a
--- /dev/null
+++ b/meson/test cases/unit/29 guessed linker dependencies/lib/meson_options.txt
@@ -0,0 +1 @@
+option('more_exports', type : 'boolean', value : false)