From dd2c44cdf6f8ed8a969d0666cafb08aaf78a919d Mon Sep 17 00:00:00 2001 From: Niklas Claesson Date: Mon, 11 Mar 2019 19:56:52 +0100 Subject: Add static as keyword to find_library --- .../linuxlike/14 static dynamic linkage/main.c | 7 +++++++ .../linuxlike/14 static dynamic linkage/meson.build | 20 ++++++++++++++++++++ .../14 static dynamic linkage/verify_static.py | 16 ++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 test cases/linuxlike/14 static dynamic linkage/main.c create mode 100644 test cases/linuxlike/14 static dynamic linkage/meson.build create mode 100755 test cases/linuxlike/14 static dynamic linkage/verify_static.py (limited to 'test cases/linuxlike') 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() -- cgit v1.1