aboutsummaryrefslogtreecommitdiff
path: root/test cases/linuxlike
diff options
context:
space:
mode:
authorNiklas Claesson <nicke.claesson@gmail.com>2019-03-11 19:56:52 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2019-03-11 20:56:52 +0200
commitdd2c44cdf6f8ed8a969d0666cafb08aaf78a919d (patch)
treea6057cb899b43c55a820291c93dd62d61e2e0a69 /test cases/linuxlike
parentfaf3581df6af59c04e66378da129bb2039beab8a (diff)
downloadmeson-dd2c44cdf6f8ed8a969d0666cafb08aaf78a919d.zip
meson-dd2c44cdf6f8ed8a969d0666cafb08aaf78a919d.tar.gz
meson-dd2c44cdf6f8ed8a969d0666cafb08aaf78a919d.tar.bz2
Add static as keyword to find_library
Diffstat (limited to 'test cases/linuxlike')
-rw-r--r--test cases/linuxlike/14 static dynamic linkage/main.c7
-rw-r--r--test cases/linuxlike/14 static dynamic linkage/meson.build20
-rwxr-xr-xtest cases/linuxlike/14 static dynamic linkage/verify_static.py16
3 files changed, 43 insertions, 0 deletions
diff --git a/test cases/linuxlike/14 static dynamic linkage/main.c b/test cases/linuxlike/14 static dynamic linkage/main.c
new file mode 100644
index 0000000..628a200
--- /dev/null
+++ b/test cases/linuxlike/14 static dynamic linkage/main.c
@@ -0,0 +1,7 @@
+#include "stdio.h"
+#include "zlib.h"
+
+int main() {
+ printf("%s\n", zlibVersion());
+ return 0;
+}
diff --git a/test cases/linuxlike/14 static dynamic linkage/meson.build b/test cases/linuxlike/14 static dynamic linkage/meson.build
new file mode 100644
index 0000000..fc3c38a
--- /dev/null
+++ b/test cases/linuxlike/14 static dynamic linkage/meson.build
@@ -0,0 +1,20 @@
+project('static dynamic', 'c')
+
+
+cc = meson.get_compiler('c')
+
+z_default = cc.find_library('z')
+z_static = cc.find_library('z', static: true)
+z_dynamic = cc.find_library('z', static: false)
+
+exe_default = executable('main_default', 'main.c', dependencies: [z_default])
+exe_static = executable('main_static', 'main.c', dependencies: [z_static])
+exe_dynamic = executable('main_dynamic', 'main.c', dependencies: [z_dynamic])
+
+test('test default', exe_default)
+test('test static', exe_static)
+test('test dynamic', exe_dynamic)
+
+test('verify static linking', find_program('verify_static.py'), args:exe_static.full_path())
+test('verify dynamic linking', find_program('verify_static.py'), args:exe_dynamic.full_path(),
+ should_fail: true)
diff --git a/test cases/linuxlike/14 static dynamic linkage/verify_static.py b/test cases/linuxlike/14 static dynamic linkage/verify_static.py
new file mode 100755
index 0000000..92cc308
--- /dev/null
+++ b/test cases/linuxlike/14 static dynamic linkage/verify_static.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+"""Test script that checks if zlib was statically linked to executable"""
+import subprocess
+import sys
+
+def main():
+ """Main function"""
+ output = subprocess.check_output(['nm', sys.argv[1]]).decode('utf-8')
+
+ if 'T zlibVersion' in output:
+ sys.exit(0)
+
+ sys.exit(1)
+
+if __name__ == '__main__':
+ main()