annotate deploy/osx/deploy.sh @ 1279:c6513cae4747 project-file-rework

Cut down vastly on the number of config.pri files and places where their contents has to be effectively duplicated without them
author Chris Cannam
date Mon, 24 Oct 2016 17:53:33 +0100
parents 1e63105fc82d
children 2d48532a074b
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@1153 48 echo "Copying in plugin load checker helper."
Chris@1153 49 cp checker/plugin-checker-helper.app/Contents/MacOS/plugin-checker-helper \
Chris@1153 50 "$source"/Contents/MacOS/
Chris@1153 51
Chris@1153 52 echo
Chris@1077 53 echo "Writing version $bundleVersion in to bundle."
Chris@1077 54 echo "(This should be a three-part number: major.minor.point)"
Chris@1077 55
Chris@1077 56 perl -p -e "s/SV_VERSION/$bundleVersion/" deploy/osx/Info.plist \
Chris@1077 57 > "$source"/Contents/Info.plist
Chris@1077 58
Chris@1077 59 echo "Done: check $source/Contents/Info.plist for sanity please"
Chris@1077 60
Chris@1077 61 echo
Chris@409 62 echo "Making target tree."
Chris@409 63
Chris@409 64 volume="$app"-"$version"
Chris@409 65 target="$volume"/"$app".app
Chris@409 66 dmg="$dmg"-"$version".dmg
Chris@409 67
Chris@409 68 mkdir "$volume" || exit 1
Chris@409 69
Chris@409 70 ln -s /Applications "$volume"/Applications
Chris@412 71 cp README README.OSC COPYING CHANGELOG "$volume/"
Chris@409 72 cp -rp "$source" "$target"
Chris@409 73
Chris@409 74 echo "Done"
Chris@409 75
Chris@510 76 deploy/osx/sign.sh "$volume" || exit 1
Chris@510 77
Chris@409 78 echo
Chris@409 79 echo "Making dmg..."
Chris@409 80
Chris@409 81 hdiutil create -srcfolder "$volume" "$dmg" -volname "$volume" &&
Chris@409 82 rm -r "$volume"
Chris@409 83
Chris@409 84 echo "Done"