setup: improved MacOSX bundle script to do all the release work

This commit is contained in:
Eberhard Graether
2015-11-19 10:29:52 +01:00
parent 19b4d152c7
commit 4e6fdaf79c
+50 -9
View File
@@ -13,6 +13,13 @@ BUNDLE_NAME="@MACOSX_BUNDLE_NAME@"
APP_NAME="@MACOSX_BINARY_NAME@"
DYNLIB_PATHS=(@MACOSX_DYNAMIC_LIBRARIES@)
VERSION_STRING=$(git describe)
VERSION_STRING="${VERSION_STRING//-/_}"
VERSION_STRING="${VERSION_STRING//./_}"
VERSION_STRING="${VERSION_STRING%_*}"
PACKAGE_DIR=${BUNDLE_NAME}_${VERSION_STRING}
QT_DIR="@MACOSX_QT_DIR@"
QT_FRAMEWORK_PATHS=(/Users/ebsi/Documents/Qt/5.5/clang_64/lib/QtDBus.framework/Versions/5/QtDBus @MACOSX_QT_FRAMEWORKS@)
@@ -28,7 +35,14 @@ then
exit 1
fi
BUNDLE_PATH=$BUNDLE_NAME.app
if [ -d "$PACKAGE_DIR" ]
then
echo -e $INFO "Removing old package."
rm -rf $PACKAGE_DIR
rm ${PACKAGE_DIR}.dmg
fi
BUNDLE_PATH=$PACKAGE_DIR/$BUNDLE_NAME.app
BIN_DIR=$BUNDLE_PATH/Contents/MacOS
DYNLIB_DIR=$BUNDLE_PATH/Contents/lib
PLUGIN_DIR=$BUNDLE_PATH/Contents/PlugIns/platforms
@@ -36,12 +50,6 @@ FRAMEWORK_DIR=$BUNDLE_PATH/Contents/Frameworks
RES_DIR=$BUNDLE_PATH/Contents/Resources
APP_PATH=$BIN_DIR/$APP_NAME
if [ -d "$BUNDLE_PATH" ]
then
echo -e $INFO "Removing old bundle."
rm -rf $BUNDLE_PATH
fi
echo -e $INFO "Creating bundle folders."
mkdir -p $BIN_DIR
mkdir -p $DYNLIB_DIR
@@ -49,12 +57,38 @@ mkdir -p $PLUGIN_DIR
mkdir -p $FRAMEWORK_DIR
mkdir -p $RES_DIR
echo -e $INFO "Copying top level contents."
cp ../../../web/coati_manual.pdf $PACKAGE_DIR/coati_manual.pdf
mkdir -p $PACKAGE_DIR/plugins/visual_studio/
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2012.vsix $PACKAGE_DIR/plugins/visual_studio/
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2013.vsix $PACKAGE_DIR/plugins/visual_studio/
cp -r ../../../ide_plugins/vs/coati_plugin_vs_2015.vsix $PACKAGE_DIR/plugins/visual_studio/
cp -R ../../../ide_plugins/sublime_text $PACKAGE_DIR/plugins/sublime_text/
ln -s /Applications $PACKAGE_DIR/Applications
echo -e $INFO "Copying bundle contents."
cp $APP_NAME $APP_PATH
cp bundle_info.plist $BUNDLE_PATH/Contents/Info.plist
cp -R ../data $RES_DIR/data
rm $RES_DIR/data/log/*
mkdir -p $RES_DIR/data
mkdir -p $RES_DIR/data/log
mkdir -p $RES_DIR/data/projects
cp -R ../data/color_schemes $RES_DIR/data/color_schemes
cp -R ../data/fonts $RES_DIR/data/fonts
cp -R ../data/gui $RES_DIR/data/gui
cp -R ../data/projects/tictactoe $RES_DIR/data/projects/tictactoe
cp -R ../data/projects/tutorial $RES_DIR/data/projects/tutorial
rm $RES_DIR/data/projects/tictactoe/tictactoe.sqlite
rm $RES_DIR/data/projects/tutorial/tutorial.sqlite
cp ../data/window_settings.ini $RES_DIR/data/window_settings.ini
cp ../data/ApplicationSettings_for_package.xml $RES_DIR/data/ApplicationSettings.xml
echo -e $INFO "Copying dynamic libraries."
for LIB_PATH in ${DYNLIB_PATHS[@]}
@@ -143,4 +177,11 @@ convert $ICON -resize 1024x1024 $ICON_SET/icon_512x512@2x.png
iconutil -c icns -o $RES_DIR/icon.icns $ICON_SET
echo -e $INFO "Obfuscate binary"
upx -1 $APP_PATH
# upx --best $APP_PATH
echo -e $INFO "create DMG"
hdiutil create ${PACKAGE_DIR}.dmg -volname ${PACKAGE_DIR} -srcfolder ${PACKAGE_DIR}
echo -e $SUCCESS "Installed bundle successfully!"