annotate deploy/osx/paths.sh @ 571:012ba1b83328

Show cancel button with progress bar only when running an operation that it makes sense to cancel (we don't really want people cancelling e.g. initial folder scan because it would leave things in an inconsistent state)
author Chris Cannam
date Thu, 01 Mar 2012 22:53:54 +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