VERSION=2.0 APPNAME=mscore LONG_NAME=MuseScore WORKING_DIRECTORY=applebuild BACKGROUND=build/musescore-dmg-background.png APP_PATH=applebuild/${APPNAME}.app VOLNAME=${LONG_NAME}-${VERSION} DMGNAME=${VOLNAME}Uncompressed.dmg COMPRESSEDDMGNAME=${VOLNAME}.dmg function set_bundle_display_options() { osascript <<-EOF tell application "Finder" set f to POSIX file ("${1}" as string) as alias tell folder f open tell container window set toolbar visible to false set statusbar visible to false set current view to icon view delay 1 -- sync set the bounds to {0, 0, 380, 540} end tell delay 1 -- sync set icon size of the icon view options of container window to 128 set arrangement of the icon view options of container window to not arranged set position of item "MuseScore.app" to {190,122} close open set position of item "Applications" to {190, 387} close open set background picture of the icon view options of container window to file "background.png" of folder "Pictures" set the bounds of the container window to {0, 0, 380, 540} update without registering applications delay 5 -- sync close end tell delay 5 -- sync end tell EOF } rm ${WORKING_DIRECTORY}/${COMPRESSEDDMGNAME} #tip: increase the size if error on copy or macdeployqt hdiutil create -size 220m -fs HFS+ -volname ${VOLNAME} ${WORKING_DIRECTORY}/${DMGNAME} # Mount the disk image hdiutil attach ${WORKING_DIRECTORY}/${DMGNAME} # Obtain device information DEVS=$(hdiutil attach ${WORKING_DIRECTORY}/${DMGNAME} | cut -f 1) DEV=$(echo $DEVS | cut -f 1 -d ' ') VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ') # copy in the application bundle cp -Rp ${APP_PATH} ${VOLUME}/${APPNAME}.app # fix the libs, qt5.1 has double slashes... BIN_FILE=${VOLUME}/${APPNAME}.app/Contents/MacOS/mscore for P in `otool -L $BIN_FILE | awk '{print $1}'` do if [[ "$P" == *//* ]] then PSLASH=$(echo $P | sed 's,//,/,g') install_name_tool -change $P $PSLASH $BIN_FILE for P1 in `otool -L $PSLASH | awk '{print $1}'` do if [[ "$P1" == *//* ]] then PSLASH1=$(echo $P1 | sed 's,//,/,g') install_name_tool -change $P1 $PSLASH1 $PSLASH fi done fi done #homebrew libs may not be writable force it? chmod -R +w /usr/local/Cellar/ macdeployqt ${VOLUME}/${APPNAME}.app mv ${VOLUME}/${APPNAME}.app ${VOLUME}/${LONG_NAME}.app # copy in background image mkdir -p ${VOLUME}/Pictures # fixme: path cp ${BACKGROUND} ${VOLUME}/Pictures/background.png # symlink applications ln -s /Applications/ ${VOLUME}/Applications set_bundle_display_options ${VOLUME} mv ${VOLUME}/Pictures ${VOLUME}/.Pictures # Unmount the disk image hdiutil detach $DEV # Convert the disk image to read-only hdiutil convert ${WORKING_DIRECTORY}/${DMGNAME} -format UDBZ -o ${WORKING_DIRECTORY}/${COMPRESSEDDMGNAME} rm ${WORKING_DIRECTORY}/${DMGNAME}