mingw64-filesystem/mingw64-find-requires.sh

62 lines
1.1 KiB
Bash

#!/bin/bash
# This script reads filenames from STDIN and outputs any relevant provides
# information that needs to be included in the package.
if [ "$1" ]
then
package_name="$1"
fi
[ -z "$OBJDUMP" ] && OBJDUMP=x86_64-pc-mingw32-objdump
# Get the list of files.
filelist=`sed "s/['\"]/\\\&/g"`
dlls_to_exclude="
advapi32.dll
comctl32.dll
comdlg32.dll
dnsapi.dll
gdi32.dll
glu32.dll
glut32.dll
imm32.dll
kernel32.dll
mscms.dll
mscoree.dll
msimg32.dll
msvcrt.dll
mswsock.dll
ole32.dll
oleaut32.dll
opengl32.dll
shell32.dll
shlwapi.dll
user32.dll
version.dll
winmm.dll
wldap32.dll
ws2_32.dll
"
exclude_pattern=""
for i in $dlls_to_exclude; do
if test "$exclude_pattern" == ""; then
exclude_pattern=$i;
else
exclude_pattern=$exclude_pattern"|"$i;
fi
done
dlls=$(echo $filelist | tr [:blank:] '\n' | grep -Ei '\.(dll|exe)$')
for f in $dlls; do
$OBJDUMP -p $f | grep 'DLL Name' | tr [:upper:] [:lower:] |
grep -Eo '[-._\+[:alnum:]]+\.dll' |
grep -Ev "$exclude_pattern" |
sed 's/\(.*\)/mingw64(\1)/'
done | sort -u