aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/linuxlike/14 static dynamic linkage/verify_static.py
blob: 8d16d48c989eaa77f08310c3360af8fc60ff0dfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env python3
"""Test script that checks if zlib was statically linked to executable"""
import subprocess
import sys

def handle_common(path):
    """Handle the common case."""
    output = subprocess.check_output(['nm', path]).decode('utf-8')
    if 'T zlibVersion' in output:
        return 0
    return 1

def handle_cygwin(path):
    """Handle the Cygwin case."""
    output = subprocess.check_output(['nm', path]).decode('utf-8')
    if (('I __imp_zlibVersion' in output) or ('D __imp_zlibVersion' in output)):
        return 1
    return 0

def main():
    """Main function"""
    if len(sys.argv) > 2 and sys.argv[1] == '--platform=cygwin':
        return handle_cygwin(sys.argv[2])
    else:
        return handle_common(sys.argv[2])


if __name__ == '__main__':
    sys.exit(main())