diff --git a/.travis.yml b/.travis.yml index 93a312d798..3eca612a73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,10 @@ addons: - nsis-common - dpkg - markdown + - zlib1g-dev + - libbz2-dev + - cmake + - genisoimage # Environment variables env: @@ -72,7 +76,7 @@ deploy: secure: "g/LU11f+mjqv+lj0sR1UliHwogXL4ofJUwoG5Dbqlvdf5UTLWytw/OWSCv8RGyuh10miyWeaoqHh1cn2C1IFhUEqN1sSeKKKOWOTvJ2FR5mzi9uH3d/MOBzG5icQ7Qh0fZ1YPz5RaJJhYu6bmfvA/1gD49GoaX2kxQL4J5cEBgg=" file: - build/OpenRA-${TRAVIS_TAG}.exe - - build/OpenRA-${TRAVIS_TAG}.zip + - build/OpenRA-${TRAVIS_TAG}.dmg - build/openra_${DOTVERSION}_all.deb skip_cleanup: true on: diff --git a/packaging/osx/DS_Store b/packaging/osx/DS_Store new file mode 100644 index 0000000000..8c3e14d3f3 Binary files /dev/null and b/packaging/osx/DS_Store differ diff --git a/packaging/osx/background.tiff b/packaging/osx/background.tiff new file mode 100644 index 0000000000..4b7cd6de26 Binary files /dev/null and b/packaging/osx/background.tiff differ diff --git a/packaging/osx/buildpackage.sh b/packaging/osx/buildpackage.sh index f09c158dc7..d1daed1c00 100755 --- a/packaging/osx/buildpackage.sh +++ b/packaging/osx/buildpackage.sh @@ -24,25 +24,47 @@ modify_plist() { # Copies the game files and sets metadata populate_template() { - cp -r OpenRA.app "$1" - cp -r $BUILTDIR/* "$1/Contents/Resources/" || exit 3 - cp "$2.icns" "$1/Contents/Resources/OpenRA.icns" - modify_plist "{MOD_ID}" "$2" "$1/Contents/Info.plist" - modify_plist "{MOD_NAME}" "$3" "$1/Contents/Info.plist" - modify_plist "{JOIN_SERVER_URL_SCHEME}" "openra-$2-$TAG" "$1/Contents/Info.plist" + cp -r OpenRA.app "build/$1" + cp -r $BUILTDIR/* "build/$1/Contents/Resources/" || exit 3 + cp "$2.icns" "build/$1/Contents/Resources/OpenRA.icns" + modify_plist "{MOD_ID}" "$2" "build/$1/Contents/Info.plist" + modify_plist "{MOD_NAME}" "$3" "build/$1/Contents/Info.plist" + modify_plist "{JOIN_SERVER_URL_SCHEME}" "openra-$2-$TAG" "build/$1/Contents/Info.plist" } # Deletes from the first argument's mod dirs all the later arguments delete_mods() { - pushd "$1/Contents/Resources/mods" > /dev/null + pushd "build/$1/Contents/Resources/mods" > /dev/null shift rm -rf $@ pushd > /dev/null } +echo "Building libdmg-hfsplus" +# Cloning is very slow, so fetch zip instead +curl -s -L -O https://github.com/OpenRA/libdmg-hfsplus/archive/master.zip || exit 3 +unzip -qq master.zip +rm master.zip +pushd libdmg-hfsplus-master > /dev/null +cmake . > /dev/null +make > /dev/null +popd > /dev/null + +echo "Building launchers" curl -s -L -O https://github.com/OpenRA/OpenRALauncherOSX/releases/download/${LAUNCHER_TAG}/launcher.zip || exit 3 unzip -qq launcher.zip rm launcher.zip +mkdir -p build/.DropDMGBackground + +# Background image is created from source svg in artsrc repository +# exported to tiff at 72 + 144 DPI, then combined using +# tiffutil -cathidpicheck bg.tiff bg2x.tiff -out background.tiff +cp background.tiff build/.DropDMGBackground + +# Finder metadata created using free trial of DropDMG +cp DS_Store build/.DS_Store + +ln -s /Applications/ build/Applications modify_plist "{DEV_VERSION}" "${1}" "OpenRA.app/Contents/Info.plist" modify_plist "{FAQ_URL}" "http://wiki.openra.net/FAQ" "OpenRA.app/Contents/Info.plist" @@ -56,7 +78,9 @@ delete_mods "OpenRA - Tiberian Dawn.app" "ra" "d2k" populate_template "OpenRA - Dune 2000.app" "d2k" "Dune 2000" delete_mods "OpenRA - Dune 2000.app" "ra" "cnc" -# Package app bundle into a zip and clean up -zip OpenRA-$1 -r -9 "OpenRA - Red Alert.app" "OpenRA - Tiberian Dawn.app" "OpenRA - Dune 2000.app" --quiet --symlinks -mv OpenRA-$1.zip $3 -rm -rf OpenRA.app "OpenRA - Red Alert.app" "OpenRA - Tiberian Dawn.app" "OpenRA - Dune 2000.app" +echo "Packaging disk image" +genisoimage -V OpenRA -D -R -apple -no-pad -o build.dmg build +libdmg-hfsplus-master/dmg/dmg dmg ./build.dmg "$3/OpenRA-$1.dmg" + +# Clean up +rm -rf OpenRA.app build.dmg libdmg-hfsplus-master build