annotate deploy/osx/paths.sh @ 558:d932ce55c364 find

Remove the single find widget from top, add one to each tab at the bottom instead. (Turns out you don't usually want to search for the same text in both types of widget.) Also provide sensible no-results text.
author Chris Cannam
date Mon, 27 Feb 2012 17:08:26 +0000
parents 2d3f1e5d8638
children 0f3e086066fc
rev   line source
Chris@335 1 #!/bin/bash
Chris@335 2
Chris@335 3 app="$1"
Chris@335 4 if [ -z "$app" ]; then
Chris@335 5 echo "Usage: $0 <appname>"
Chris@335 6 echo "Provide appname without the .app extension, please"
Chris@335 7 exit 2
Chris@335 8 fi
Chris@335 9
Chris@335 10 echo
Chris@335 11 echo "I expect you to have already copied QtCore, QtNetwork and QtGui to "
Chris@335 12 echo "$app.app/Contents/Frameworks and PyQt4/QtCore.so and PyQt4/QtGui.so to "
Chris@335 13 echo "$app.app/Contents/MacOS -- expect errors to follow if they're missing"
Chris@335 14 echo
Chris@335 15
Chris@335 16 echo "Fixing up loader paths in binaries..."
Chris@335 17
Chris@335 18 install_name_tool -id QtCore "$app.app/Contents/Frameworks/QtCore"
Chris@335 19 install_name_tool -id QtGui "$app.app/Contents/Frameworks/QtGui"
Chris@335 20 install_name_tool -id QtNetwork "$app.app/Contents/Frameworks/QtNetwork"
Chris@335 21
Chris@335 22 for fwk in QtCore QtGui QtNetwork; do
Chris@335 23 find "$app.app" -type f -print | while read x; do
Chris@372 24 current=$(otool -L "$x" | grep "$fwk" | grep ramework | awk '{ print $1; }')
Chris@335 25 [ -z "$current" ] && continue
Chris@335 26 echo "$x has $current"
Chris@335 27 relative=$(echo "$x" | sed -e "s,$app.app/Contents/,," \
Chris@335 28 -e 's,[^/]*/,../,g' -e 's,/[^/]*$,/Frameworks/'"$fwk"',' )
Chris@335 29 echo "replacing with relative path $relative"
Chris@335 30 install_name_tool -change "$current" "@loader_path/$relative" "$x"
Chris@335 31 done
Chris@335 32 done
Chris@335 33
Chris@335 34 echo "Done: be sure to run the app and see that it works!"
Chris@335 35
Chris@335 36