at master 1.1 kB view raw
1# Fix libtool libraries generated by qmake. 2# qmake started inserting filenames of shared objects instead of the appropriate 3# linker flags. fixQmakeLibtool searches for broken libtool libraries and 4# replaces the filenames with the linker flags that should have been there. 5fixQmakeLibtool() { 6 if [ -d "$1" ]; then 7 find "$1" -name '*.la' | while read la; do 8 set +e 9 framework_libs=$(grep '^dependency_libs' "$la" | grep -Eo -- '-framework +\w+' | tr '\n' ' ') 10 set -e 11 sed -i "$la" \ 12 -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' \ 13 -e '/^dependency_libs/ s,-framework \+\w\+,,g' 14 if [ ! -z "$framework_libs" ]; then 15 if grep '^inherited_linker_flags=' $la >/dev/null; then 16 sed -i "$la" -e "s/^\(inherited_linker_flags='[^']*\)/\1 $framework_libs/" 17 else 18 echo "inherited_linker_flags='$framework_libs'" >> "$la" 19 fi 20 fi 21 done 22 fi 23} 24 25fixupOutputHooks+=('fixQmakeLibtool $prefix')