annotate deploy/osx/deploy.sh @ 1583:0510dea7ef84 dev/refactor-piper-related

Introduce some POD structs for describing an external server application and the desired libraries to load from it, and disambiguating between empty list request and invalid list request. This allows for overriding PiperVampPluginFactory behaviour for using a PluginScan to populate the list request.
author Lucas Thompson <lucas.thompson@qmul.ac.uk>
date Fri, 10 Feb 2017 11:15:19 +0000
parents 422d7ac46232
children 105d7d46455e
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%%-*}
Chris@1055 25 case "$stem" in
Chris@409 26 [0-9].[0-9]) bundleVersion="$version".0 ;;
Chris@409 27 [0-9].[0-9].[0-9]) bundleVersion="$version" ;;
Chris@1055 28 *) echo "Error: Version stem $stem (of version $version) is neither two- nor three-part number" ;;
Chris@409 29 esac
Chris@409 30
Chris@409 31 echo
Chris@745 32 echo "Copying in frameworks and plugins from Qt installation directory."
Chris@745 33
Chris@745 34 deploy/osx/copy-qt.sh "$app" || exit 2
Chris@745 35
Chris@745 36 echo
Chris@514 37 echo "Fixing up paths."
Chris@514 38
Chris@514 39 deploy/osx/paths.sh "$app"
Chris@514 40
Chris@514 41 echo
Chris@1077 42 echo "Copying in qt.conf to set local-only plugin paths."
Chris@1077 43 echo "Make sure all necessary Qt plugins are in $source/Contents/plugins/*"
Chris@1077 44 echo "You probably want platforms/, accessible/ and imageformats/ subdirectories."
Chris@1077 45 cp deploy/osx/qt.conf "$source"/Contents/Resources/qt.conf
Chris@1077 46
Chris@1077 47 echo
Chris@1499 48 echo "Copying in plugin load checker."
Chris@1499 49 cp checker/vamp-plugin-load-checker "$source"/Contents/MacOS/
cannam@1286 50
cannam@1286 51 echo
cannam@1286 52 echo "Copying in plugin server."
cannam@1345 53 cp piper-vamp-simple-server "$source"/Contents/MacOS/
Chris@1153 54
Chris@1153 55 echo
Chris@1077 56 echo "Writing version $bundleVersion in to bundle."
Chris@1077 57 echo "(This should be a three-part number: major.minor.point)"
Chris@1077 58
Chris@1077 59 perl -p -e "s/SV_VERSION/$bundleVersion/" deploy/osx/Info.plist \
Chris@1077 60 > "$source"/Contents/Info.plist
Chris@1077 61
Chris@1077 62 echo "Done: check $source/Contents/Info.plist for sanity please"
Chris@1077 63
Chris@1077 64 echo
Chris@409 65 echo "Making target tree."
Chris@409 66
Chris@409 67 volume="$app"-"$version"
Chris@409 68 target="$volume"/"$app".app
Chris@409 69 dmg="$dmg"-"$version".dmg
Chris@409 70
Chris@409 71 mkdir "$volume" || exit 1
Chris@409 72
Chris@409 73 ln -s /Applications "$volume"/Applications
Chris@412 74 cp README README.OSC COPYING CHANGELOG "$volume/"
Chris@409 75 cp -rp "$source" "$target"
Chris@409 76
Chris@409 77 echo "Done"
Chris@409 78
cannam@1286 79 echo
cannam@1286 80 echo "Code-signing volume..."
cannam@1286 81
Chris@510 82 deploy/osx/sign.sh "$volume" || exit 1
Chris@510 83
cannam@1286 84 echo "Done"
cannam@1286 85
Chris@409 86 echo
Chris@409 87 echo "Making dmg..."
Chris@409 88
Chris@409 89 hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" &&
Chris@409 90 rm -r "$volume"
Chris@409 91
Chris@409 92 echo "Done"