annotate deploy/osx/copy-qt.sh @ 684:1f1824a93c7d v2.1.1

Merge
author Chris Cannam
date Tue, 10 Dec 2019 09:42:21 +0000
parents 55dd89415de0
children
rev   line source
Chris@437 1 #!/bin/bash
Chris@437 2
Chris@437 3 set -eu
Chris@437 4
Chris@437 5 app="$1"
Chris@437 6 if [ -z "$app" ]; then
Chris@437 7 echo "Usage: $0 <appname>"
Chris@437 8 echo "Provide appname without the .app extension, please"
Chris@437 9 exit 2
Chris@437 10 fi
Chris@437 11
Chris@516 12 frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport QtDBus"
Chris@437 13
Chris@544 14 plugins="gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen macstyle"
Chris@437 15
Chris@437 16 qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,)
Chris@437 17
Chris@437 18 if [ ! -d "$qtdir" ]; then
Chris@437 19 echo "Failed to discover Qt installation directory from Makefile, exiting"
Chris@437 20 exit 2
Chris@437 21 fi
Chris@437 22
Chris@437 23 fdir="$app.app/Contents/Frameworks"
Chris@437 24 pdir="$app.app/Contents/plugins"
Chris@437 25
Chris@437 26 mkdir -p "$fdir"
Chris@437 27 mkdir -p "$pdir"
Chris@437 28
Chris@437 29 echo
Chris@437 30 echo "Copying frameworks..."
Chris@437 31 for fwk in $frameworks; do
Chris@544 32 if [ ! -d "$qtdir/lib/$fwk.framework" ]; then
Chris@544 33 if [ "$fwk" = "QtDBus" ]; then
Chris@544 34 echo "QtDBus.framework not found, assuming Qt was built without DBus support"
Chris@544 35 continue
Chris@544 36 fi
Chris@544 37 fi
Chris@437 38 cp -v "$qtdir/lib/$fwk.framework/$fwk" "$fdir" || exit 2
Chris@437 39 done
Chris@437 40
Chris@437 41 echo "Done"
Chris@437 42
Chris@437 43 echo
Chris@437 44 echo "Copying plugins..."
Chris@437 45 for plug in $plugins; do
Chris@437 46 pfile=$(ls "$qtdir"/plugins/*/libq"$plug".dylib)
Chris@437 47 if [ ! -f "$pfile" ]; then
Chris@437 48 echo "Failed to find plugin $plug, exiting"
Chris@437 49 exit 2
Chris@437 50 fi
Chris@437 51 target="$pdir"/${pfile##?*plugins/}
Chris@437 52 tdir=`dirname "$target"`
Chris@437 53 mkdir -p "$tdir"
Chris@437 54 cp -v "$pfile" "$target" || exit 2
Chris@437 55 done
Chris@437 56
Chris@637 57 # Sometimes the copied-in files are read-only: correct that
Chris@637 58 chmod -R u+w "$app.app"
Chris@637 59
Chris@437 60 echo "Done"
Chris@437 61
Chris@437 62