Mercurial > hg > sonic-visualiser
annotate deploy/osx/copy-qt.sh @ 2518:f3f9114ff295
Improve chances of user getting to see splash screen (rather than empty box) by processing events a little more
author | Chris Cannam |
---|---|
date | Wed, 29 Apr 2020 13:27:59 +0100 |
parents | 4e2749c58e77 |
children |
rev | line source |
---|---|
Chris@745 | 1 #!/bin/bash |
Chris@745 | 2 |
Chris@1055 | 3 set -eu |
Chris@1055 | 4 |
Chris@745 | 5 app="$1" |
Chris@745 | 6 if [ -z "$app" ]; then |
Chris@745 | 7 echo "Usage: $0 <appname>" |
Chris@745 | 8 echo "Provide appname without the .app extension, please" |
Chris@745 | 9 exit 2 |
Chris@745 | 10 fi |
Chris@745 | 11 |
Chris@1082 | 12 frameworks="QtCore QtNetwork QtGui QtXml QtSvg QtWidgets QtPrintSupport QtDBus" |
Chris@745 | 13 |
cannam@1881 | 14 plugins="gif icns ico jpeg tga tiff wbmp webp cocoa minimal offscreen macstyle" |
Chris@745 | 15 |
Chris@745 | 16 qtdir=$(grep "Command:" Makefile | head -1 | awk '{ print $3; }' | sed s,/bin/.*,,) |
Chris@745 | 17 |
Chris@745 | 18 if [ ! -d "$qtdir" ]; then |
Chris@745 | 19 echo "Failed to discover Qt installation directory from Makefile, exiting" |
Chris@745 | 20 exit 2 |
Chris@745 | 21 fi |
Chris@745 | 22 |
Chris@745 | 23 fdir="$app.app/Contents/Frameworks" |
Chris@745 | 24 pdir="$app.app/Contents/plugins" |
Chris@745 | 25 |
Chris@745 | 26 mkdir -p "$fdir" |
Chris@745 | 27 mkdir -p "$pdir" |
Chris@745 | 28 |
Chris@745 | 29 echo |
Chris@745 | 30 echo "Copying frameworks..." |
Chris@745 | 31 for fwk in $frameworks; do |
Chris@1432 | 32 if [ ! -d "$qtdir/lib/$fwk.framework" ]; then |
Chris@1432 | 33 if [ "$fwk" = "QtDBus" ]; then |
Chris@1432 | 34 echo "QtDBus.framework not found, assuming Qt was built without DBus support" |
Chris@1432 | 35 continue |
Chris@1432 | 36 fi |
Chris@1432 | 37 fi |
Chris@745 | 38 cp -v "$qtdir/lib/$fwk.framework/$fwk" "$fdir" || exit 2 |
Chris@745 | 39 done |
Chris@745 | 40 |
Chris@745 | 41 echo "Done" |
Chris@745 | 42 |
Chris@745 | 43 echo |
Chris@745 | 44 echo "Copying plugins..." |
Chris@745 | 45 for plug in $plugins; do |
Chris@772 | 46 pfile=$(ls "$qtdir"/plugins/*/libq"$plug".dylib) |
Chris@745 | 47 if [ ! -f "$pfile" ]; then |
Chris@745 | 48 echo "Failed to find plugin $plug, exiting" |
Chris@745 | 49 exit 2 |
Chris@745 | 50 fi |
Chris@772 | 51 target="$pdir"/${pfile##?*plugins/} |
Chris@772 | 52 tdir=`dirname "$target"` |
Chris@772 | 53 mkdir -p "$tdir" |
Chris@772 | 54 cp -v "$pfile" "$target" || exit 2 |
Chris@745 | 55 done |
Chris@745 | 56 |
Chris@2379 | 57 # Sometimes the copied-in files are read-only: correct that |
Chris@2379 | 58 chmod -R u+w "$app.app" |
Chris@2379 | 59 |
Chris@745 | 60 echo "Done" |
Chris@745 | 61 |
Chris@772 | 62 |