annotate deploy/osx/deploy.sh @ 1683:203372cdba61 scale-ticks

Change loop to something that feels more correct, though it makes no difference to the tests here. More tests, one failing.
author Chris Cannam
date Thu, 04 May 2017 08:32:41 +0100
parents 105d7d46455e
children b693b9218f66
rev   line source
Chris@409 1 #!/bin/bash
Chris@409 2
Chris@1077 3 set -e
Chris@1077 4
Chris@409 5 # Execute this from the top-level directory of the project (the one
Chris@409 6 # that contains the .app bundle). Supply the name of the .app bundle
Chris@409 7 # as argument (the target will use $app.app regardless, but we need
Chris@409 8 # to know the source)
Chris@409 9
Chris@409 10 source="$1"
Chris@409 11 dmg="$2"
Chris@409 12 if [ -z "$source" ] || [ ! -d "$source" ] || [ -z "$dmg" ]; then
Chris@409 13 echo "Usage: $0 <source.app> <target-dmg-basename>"
Chris@463 14 echo " e.g. $0 MyApplication.app MyApplication"
Chris@463 15 echo " Version number and .dmg will be appended automatically,"
Chris@463 16 echo " but the .app name must include .app"
Chris@409 17 exit 2
Chris@409 18 fi
Chris@409 19 app=`basename "$source" .app`
Chris@409 20
Chris@1077 21 set -u
Chris@1077 22
Chris@409 23 version=`perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h`
Chris@1055 24 stem=${version%%-*}
cannam@1648 25 stem=${stem%%pre*}
Chris@1055 26 case "$stem" in
cannam@1648 27 [0-9].[0-9]) bundleVersion="$stem".0 ;;
cannam@1648 28 [0-9].[0-9].[0-9]) bundleVersion="$stem" ;;
Chris@1055 29 *) echo "Error: Version stem $stem (of version $version) is neither two- nor three-part number" ;;
Chris@409 30 esac
Chris@409 31
Chris@409 32 echo
Chris@745 33 echo "Copying in frameworks and plugins from Qt installation directory."
Chris@745 34
Chris@745 35 deploy/osx/copy-qt.sh "$app" || exit 2
Chris@745 36
Chris@745 37 echo
Chris@514 38 echo "Fixing up paths."
Chris@514 39
Chris@514 40 deploy/osx/paths.sh "$app"
Chris@514 41
Chris@514 42 echo
Chris@1077 43 echo "Copying in qt.conf to set local-only plugin paths."
Chris@1077 44 echo "Make sure all necessary Qt plugins are in $source/Contents/plugins/*"
Chris@1077 45 echo "You probably want platforms/, accessible/ and imageformats/ subdirectories."
Chris@1077 46 cp deploy/osx/qt.conf "$source"/Contents/Resources/qt.conf
Chris@1077 47
Chris@1077 48 echo
Chris@1499 49 echo "Copying in plugin load checker."
Chris@1499 50 cp checker/vamp-plugin-load-checker "$source"/Contents/MacOS/
cannam@1286 51
cannam@1286 52 echo
cannam@1286 53 echo "Copying in plugin server."
cannam@1345 54 cp piper-vamp-simple-server "$source"/Contents/MacOS/
Chris@1153 55
Chris@1153 56 echo
Chris@1077 57 echo "Writing version $bundleVersion in to bundle."
Chris@1077 58 echo "(This should be a three-part number: major.minor.point)"
Chris@1077 59
Chris@1077 60 perl -p -e "s/SV_VERSION/$bundleVersion/" deploy/osx/Info.plist \
Chris@1077 61 > "$source"/Contents/Info.plist
Chris@1077 62
Chris@1077 63 echo "Done: check $source/Contents/Info.plist for sanity please"
Chris@1077 64
Chris@1077 65 echo
Chris@409 66 echo "Making target tree."
Chris@409 67
Chris@409 68 volume="$app"-"$version"
Chris@409 69 target="$volume"/"$app".app
Chris@409 70 dmg="$dmg"-"$version".dmg
Chris@409 71
Chris@409 72 mkdir "$volume" || exit 1
Chris@409 73
Chris@409 74 ln -s /Applications "$volume"/Applications
Chris@412 75 cp README README.OSC COPYING CHANGELOG "$volume/"
Chris@409 76 cp -rp "$source" "$target"
Chris@409 77
Chris@409 78 echo "Done"
Chris@409 79
cannam@1286 80 echo
cannam@1286 81 echo "Code-signing volume..."
cannam@1286 82
Chris@510 83 deploy/osx/sign.sh "$volume" || exit 1
Chris@510 84
cannam@1286 85 echo "Done"
cannam@1286 86
Chris@409 87 echo
Chris@409 88 echo "Making dmg..."
Chris@409 89
Chris@409 90 hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" &&
Chris@409 91 rm -r "$volume"
Chris@409 92
Chris@409 93 echo "Done"