X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=platform%2Fosx%2Fmake_dmg.sh;h=5b383a5713ccdfaaeba05050ba517c1e13844f06;hp=f997af8175713f2ce2e2cf08b8ae9cb95783acf3;hb=9c4cd85f66818eb100e1be40f7eeb7d3e60cc482;hpb=83b80141967c7796dedde6c84000622128c038c7 diff --git a/platform/osx/make_dmg.sh b/platform/osx/make_dmg.sh index f997af817..5b383a571 100644 --- a/platform/osx/make_dmg.sh +++ b/platform/osx/make_dmg.sh @@ -1,12 +1,36 @@ #!/bin/bash # -SYNTAX="make_dmg.sh []" +SYNTAX="make_dmg.sh -e -r -i -p -a [-a ] [-b ]" # -# e.g. make_dmg.sh /Users/carl/osx-environment /Users/carl/cdist foo@bar.net opensesame x86_64/10.10 arm64/11.0 +# e.g. make_dmg.sh -e /Users/carl/osx-environment -r /Users/carl/cdist -i foo@bar.net -p opensesame -a x86_64/10.10 -a arm64/11.0 [-b dcpomatic2_player] # Don't set -e here as egrep (used a few times) returns 1 if no matches # were found. +BUILD="main kdm server batch player playlist combiner editor disk" +while getopts "e:r:i:p:a:b:" o; do + case "${o}" in + e) + ENV=${OPTARG} + ;; + r) + ROOT=${OPTARG} + ;; + i) + APPLE_ID=${OPTARG} + ;; + p) + APPLE_PASSWORD=${OPTARG} + ;; + a) + ARCHS+=("$OPTARG") + ;; + b) + BUILD=${OPTARG} + ;; + esac +done + # Use a tag if what we've built is exactly on one version=$(git describe --tags --abbrev=0 --match=v2.*.* --exact-match 2> /dev/null) if [ "$?" == "0" ]; then @@ -18,12 +42,9 @@ fi # DMG size in megabytes DMG_SIZE=256 -ENV=$1 -ROOT=$2 -APPLE_ID=$3 -APPLE_PASSWORD=$4 -ARCH1=$5 -ARCH2=$6 + +ARCH1=${ARCHS[0]} +ARCH2=${ARCHS[1]} APPLICATION_IDENTITY="Developer ID Application: Carl Hetherington (R82DXSR997)" INSTALLER_IDENTITY="Developer ID Installer: Carl Hetherington (R82DXSR997)" @@ -202,51 +223,40 @@ function copy_resources { cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_playlist.icns "$dest" cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_disk.icns "$dest" cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_combiner.icns "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/defaults.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/defaults@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/kdm_email.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/kdm_email@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/email.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/email@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/servers.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/servers@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/tms.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/tms@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/keys.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/keys@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/cover_sheet.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/cover_sheet@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/notifications.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/notifications@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/sound.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/sound@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/identifiers.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/identifiers@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/general.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/general@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/advanced.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/advanced@2x.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/locations.png "$dest" - cp $prefix/src/dcpomatic/graphics/osx/preferences/locations@2x.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/dcpomatic2_editor.icns "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/defaults*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/kdm_email*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/email*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/servers*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/tms*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/keys*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/cover_sheet*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/notifications*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/sound*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/identifiers*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/general*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/advanced*.png "$dest" + cp $prefix/src/dcpomatic/graphics/osx/preferences/locations*.png "$dest" cp $prefix/src/dcpomatic/fonts/LiberationSans-Regular.ttf "$dest" cp $prefix/src/dcpomatic/fonts/LiberationSans-Italic.ttf "$dest" cp $prefix/src/dcpomatic/fonts/LiberationSans-Bold.ttf "$dest" cp $prefix/src/dcpomatic/fonts/fonts.conf.osx "$dest"/fonts.conf cp $prefix/src/dcpomatic/graphics/splash.png "$dest" - cp $prefix/src/dcpomatic/graphics/zoom.png "$dest" - cp $prefix/src/dcpomatic/graphics/zoom_all.png "$dest" - cp $prefix/src/dcpomatic/graphics/select.png "$dest" - cp $prefix/src/dcpomatic/graphics/snap.png "$dest" - cp $prefix/src/dcpomatic/graphics/sequence.png "$dest" + cp $prefix/src/dcpomatic/graphics/zoom*.png "$dest" + cp $prefix/src/dcpomatic/graphics/zoom_all*.png "$dest" + cp $prefix/src/dcpomatic/graphics/select*.png "$dest" + cp $prefix/src/dcpomatic/graphics/snap*.png "$dest" + cp $prefix/src/dcpomatic/graphics/sequence*.png "$dest" cp $prefix/src/dcpomatic/graphics/me.jpg "$dest" cp $prefix/src/dcpomatic/graphics/link.png "$dest" cp $prefix/src/dcpomatic/graphics/tick.png "$dest" cp $prefix/src/dcpomatic/graphics/no_tick.png "$dest" cp -r $prefix/share/libdcp/xsd "$dest" cp -r $prefix/share/libdcp/tags "$dest" + cp -r $prefix/share/libdcp/ratings "$dest" # i18n: DCP-o-matic .mo files - for lang in de_DE es_ES fr_FR it_IT sv_SE nl_NL ru_RU pl_PL da_DK pt_PT pt_BR sk_SK cs_CZ uk_UA zh_CN tr_TR; do + for lang in de_DE es_ES fr_FR it_IT sv_SE nl_NL ru_RU pl_PL da_DK pt_PT pt_BR sk_SK cs_CZ uk_UA zh_CN tr_TR sl_SI hu_HU; do mkdir -p "$dest/$lang/LC_MESSAGES" cp $prefix/src/dcpomatic/build/src/lib/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES" cp $prefix/src/dcpomatic/build/src/wx/mo/$lang/*.mo "$dest/$lang/LC_MESSAGES" @@ -254,7 +264,7 @@ function copy_resources { done # i18n: wxWidgets .mo files - for lang in de es fr it sv nl ru pl da cs; do + for lang in de es fr it sv nl ru pl da cs sl; do mkdir "$dest/$lang" cp $ENV/$ARCH1/share/locale/$lang/LC_MESSAGES/wxstd.mo "$dest/$lang" done @@ -455,107 +465,150 @@ function copy_verify { relink_relative "${rl[@]}" } +function copy_kdm { + copy $ROOT src/libdcp/build/tools/dcpkdm "$approot/MacOS" + mv "$approot/MacOS/dcpkdm" "$approot/MacOS/dcpomatic2_kdm_inspect" + rl=("$approot/MacOS/dcpomatic2_kdm_inspect" "$approot/Frameworks/"*.dylib) + relink_relative "${rl[@]}" +} + if [ "$ARCH2" == "" ]; then prefix=$ROOT else prefix=$ROOT/$ARCH2 fi -# DCP-o-matic main -setup "DCP-o-matic 2.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2 "$approot/MacOS" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_cli "$approot/MacOS" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_create "$approot/MacOS" -copy $ROOT bin/ffprobe "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2" "$approot/MacOS/dcpomatic2_cli" "$approot/MacOS/dcpomatic2_create" "$approot/MacOS/ffprobe" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic" "dcpomatic2_verify openssl ffprobe dcpomatic2_cli dcpomatic2_create dcpomatic2" - -# DCP-o-matic KDM Creator -setup "DCP-o-matic 2 KDM Creator.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm "$approot/MacOS" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_kdm_cli "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_kdm.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_kdm" "$approot/MacOS/dcpomatic2_kdm_cli" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic KDM Creator" "dcpomatic2_verify openssl dcpomatic2_kdm_cli dcpomatic2_kdm" - -# DCP-o-matic Encode Server -setup "DCP-o-matic 2 Encode Server.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server "$approot/MacOS" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_server_cli "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_server.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_server" "$approot/MacOS/dcpomatic2_server_cli" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic Encode Server" "dcpomatic2_verify openssl dcpomatic2_server_cli dcpomatic2_server" - -# DCP-o-matic Batch Converter -setup "DCP-o-matic 2 Batch converter.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_batch "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_batch.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_batch" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic Batch Converter" "dcpomatic2_verify openssl dcpomatic2_batch" - -# DCP-o-matic Player -setup "DCP-o-matic 2 Player.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_player "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_player.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_player" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic Player" "dcpomatic2_verify openssl dcpomatic2_player" - -# DCP-o-matic Playlist Editor -setup "DCP-o-matic 2 Playlist Editor.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_playlist "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_playlist.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_playlist" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic Playlist Editor" "dcpomatic2_verify openssl dcpomatic2_playlist" - -# DCP-o-matic Combiner -setup "DCP-o-matic 2 Combiner.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_combiner "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_combiner.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_combiner" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" -make_dmg "$appdir" "" "DCP-o-matic Combiner" "dcpomatic2_verify openssl dcpomatic2_combiner" - -# DCP-o-matic Disk Writer .app -setup "DCP-o-matic 2 Disk Writer.app" -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk "$approot/MacOS" -copy $ROOT src/openssl/apps/openssl "$approot/MacOS" -copy_verify -cp $prefix/src/dcpomatic/platform/osx/uninstall_disk.applescript "$approot/Resources" -cp $prefix/src/dcpomatic/build/platform/osx/dcpomatic2_disk.Info.plist "$approot/Info.plist" -rl=("$approot/MacOS/dcpomatic2_disk" "$approot/Frameworks/"*.dylib) -relink_relative "${rl[@]}" - -# DCP-o-matic Disk Writer daemon .pkg - -pkgbase=tmp-disk-writer -rm -rf $pkgbase -mkdir $pkgbase -pkgbin=$pkgbase/bin -pkgroot=$pkgbase/root - -mkdir -p $pkgroot/Library/LaunchDaemons -cat > $pkgroot/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist < $pkgroot/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist < @@ -590,33 +643,34 @@ cat > $pkgroot/Library/LaunchDaemons/com.dcpomatic.disk.writer.plist < EOF -# Get the binaries together in $pkgbin then move them to the -# place with spaces in the filename to avoid some of the pain of escaping + # Get the binaries together in $pkgbin then move them to the + # place with spaces in the filename to avoid some of the pain of escaping -mkdir $pkgbin -copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk_writer "$pkgbin" -copy_libs "$pkgbin" + mkdir $pkgbin + copy $ROOT src/dcpomatic/build/src/tools/dcpomatic2_disk_writer "$pkgbin" + copy_libs "$pkgbin" -rl=("$pkgbin/dcpomatic2_disk_writer" "$pkgbin/"*.dylib) -relink_absolute "/Library/Application Support/com.dcpomatic" "${rl[@]}" + rl=("$pkgbin/dcpomatic2_disk_writer" "$pkgbin/"*.dylib) + relink_absolute "/Library/Application Support/com.dcpomatic" "${rl[@]}" -mkdir $pkgbase/scripts -cat > $pkgbase/scripts/postinstall < $pkgbase/scripts/postinstall <