diff --git a/README.md b/README.md index 0ee7c17595..dd0a07b3a6 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,18 @@ Build APM Planner 4) Run `open ./release/apmplanner2.app` +To build on Mac OS X (10.6 or later): + +Install appdmg +----------- +`npm install -g appdmg` + +Create a DMG +----------- +`./deploy/mac_dmg.sh` + +Dmg file will be located in `./release/apmplanner2.dmg` + Linux ===== diff --git a/apm_planner.pro b/apm_planner.pro index 324d330989..d958322edb 100644 --- a/apm_planner.pro +++ b/apm_planner.pro @@ -177,7 +177,7 @@ MacBuild { QT += multimedia QMAKE_INFO_PLIST = Custom-Info.plist - CONFIG += x86_64 + CONFIG += x86_64 arm64 CONFIG -= x86 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 ICON = $$BASEDIR/files/APMIcons/icon.icns diff --git a/deploy/assets/config.json b/deploy/assets/config.json new file mode 100644 index 0000000000..f863fb416e --- /dev/null +++ b/deploy/assets/config.json @@ -0,0 +1,8 @@ +{ + "title": "APM Planner 2.0", + "icon": "../../files/APMIcons/icon.icns", + "contents": [ + { "x": 448, "y": 344, "type": "link", "path": "/Applications" }, + { "x": 192, "y": 344, "type": "file", "path": "../../release/apmplanner2.app" } + ] + } \ No newline at end of file diff --git a/deploy/mac_dmg.sh b/deploy/mac_dmg.sh new file mode 100755 index 0000000000..55a1a30a44 --- /dev/null +++ b/deploy/mac_dmg.sh @@ -0,0 +1,71 @@ +#!/bin/sh +echo "cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccloolccccccccccccccccccc +cccccccccccccccccccccclollccldxdolcccccccccccccccc +ccccccccccccccccccccccodkkO0OkO00kdolccccccccccccc +ccccccccccccccccccccccccllox0XWWWWNX0kdlcccccccccc +cccccccccccccccccccccccccccccoxOKWMMMWNKkdlccccccc +ccccccccccclllllccccccclllllllllldkKNWMMMWX0xolccc +ccccccccccxKXXX0dcccccdKXXXXXXXX0kolokKNWMMMWXxccc +cccccccclkNMMMMNxccccl0WMMWX0KNMMW0lcclOWMMMNOlccc +cccccccoOWMNNWMWkccccxNMMMXdcoKMMWOlccdKMMWXxlcccc +ccccccdKWMXxOWMWOlccoKMMMMNOOKWMN0ocldKWMWKdcccccc +cccclxXWMWNKNWMM0lcckNMMNXXKKK0kdllld0WMNOoccccccc +ccclONMWXOOOKWMMKocoKMMWOolllccccldx0NMXklcccccccc +cccdO00OocccoO00kocdO00koccccccodxdONWKdcccccccccc +cccccccccccccccccccccccccccccldxdoxKN0occccccccccc +cccccccccccccccccccccccccccldddlco0Xklcccccccccccc +ccccccccccccccccccccccccloodolcclOKxcccccccccccccc +cccccccccccccccccccccccllllcccclxOoccccccccccccccc +cccccccccccccccccccccccccccccccodlcccccccccccccccc +cccccccccccccccccccccccccccccccllccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccc +cccccccccccccccccccccccccccccccccccccccccccccccccc +" +if [ -f "release/apmplanner2.dmg" ] ; then + rm -rf "release/apmplanner2.dmg" +fi + +rm -rf release/apmplanner2.app +make -j8 +echo 'macdeployqt "release/apmplanner2.app"' +macdeployqt "release/apmplanner2.app" + +echo "rm -rf release/apmplanner2.app/Contents/Frameworks/SDL2.framework" +rm -rf release/apmplanner2.app/Contents/Frameworks/SDL2.framework +echo "cp -R libs/lib/Frameworks/SDL2.framework release/apmplanner2.app/Contents/Frameworks" +cp -R libs/lib/Frameworks/SDL2.framework release/apmplanner2.app/Contents/Frameworks + +SIGN="$1" + +ROOT=`pwd` +cd release/ + +echo "cd apmplanner2.app/Contents/MacOS" +cd apmplanner2.app/Contents/MacOS +echo "mv qml ../Resources" +mv qml ../Resources +echo "mv sik_uploader ../Resources " +mv sik_uploader ../Resources +echo "ln -s ../Resources/sik_uploader sik_uploader" +ln -s ../Resources/sik_uploader sik_uploader +echo "ln -s ../Resources/qml qml" +ln -s ../Resources/qml qml + +cd .. +cd .. +cd .. + + +echo "Sign sub Framework" +find apmplanner2.app -name "*.framework" -exec codesign --timestamp --options runtime -f -s "$SIGN" {} \; +echo "Sign sub dylib" +find apmplanner2.app -name "*.dylib" -exec codesign --timestamp --options runtime -f -s "$SIGN" {} \; +echo "Sign apmplanner2.ap" +codesign --timestamp --options runtime -f -s "$SIGN" apmplanner2.app + +cd $ROOT +appdmg deploy/assets/config.json release/apmplanner2.dmg