annotate deploy/osx/copy-qt.sh @ 64:0c94d3065ecd

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