51 lines
1.2 KiB
Bash
51 lines
1.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# This script reads filenames from STDIN and outputs any relevant provides
|
||
|
# information that needs to be included in the package.
|
||
|
|
||
|
[ -z "$OBJDUMP" ] && OBJDUMP=mingw-objdump
|
||
|
|
||
|
targets=$@
|
||
|
if [ -z "$targets" ] ; then
|
||
|
echo "Usage: $0 [ mingw32 ] [ mingw64 ]"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Get the list of files.
|
||
|
|
||
|
filelist=`sed "s/['\"]/\\\&/g"`
|
||
|
|
||
|
dlls=$(echo $filelist | tr '[:blank:]' '\n' | grep -Ei '\.(dll|exe)$')
|
||
|
pkgconfig_files=$(echo $filelist | tr '[:blank:]' '\n' | grep -Ei '\.(pc)$')
|
||
|
|
||
|
for target in $targets; do
|
||
|
dll_found=false
|
||
|
host_triplet=`rpm --eval "%{${target}_target}"`
|
||
|
for f in $dlls; do
|
||
|
if [[ $f =~ .*$host_triplet.* ]]; then
|
||
|
$OBJDUMP -p $f | grep 'DLL Name' | grep -Eio '[-._\+[:alnum:]]+\.dll' |
|
||
|
tr '[:upper:]' '[:lower:]' |
|
||
|
sed "s/\(.*\)/$target(\1)/"
|
||
|
dll_found=true
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# Add a dependency on filesystem and crt if necessary
|
||
|
if [ $dll_found = true ]; then
|
||
|
echo "${target}-filesystem >= 95"
|
||
|
echo "${target}-crt"
|
||
|
fi
|
||
|
|
||
|
pkgconfig_files_found=false
|
||
|
for f in $pkgconfig_files; do
|
||
|
if [[ $f =~ .*$host_triplet.* ]]; then
|
||
|
pkgconfig_files_found=true
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# Add a dependency on $target-pkg-config if necessary
|
||
|
if [ $pkgconfig_files_found = true ]; then
|
||
|
echo "${target}-pkg-config"
|
||
|
fi
|
||
|
done | sort -u
|