#!/bin/bash
-# This script is to package the Cura package for Windows/Linux and OSx
-# This script should run under Linux and OSx, as well as Windows with Cygwin.
+# This script is to package the Cura package for Windows/Linux and Mac OS X
+# This script should run under Linux and Mac OS X, as well as Windows with Cygwin.
#############################
# CONFIGURATION
#############################
##Select the build target
-BUILD_TARGET=${1:-all}
+# BUILD_TARGET=${1:-all}
#BUILD_TARGET=win32
#BUILD_TARGET=linux
-#BUILD_TARGET=osx64
+BUILD_TARGET=darwin
##Do we need to create the final archive
ARCHIVE_FOR_DISTRIBUTION=1
##Which version name are we appending to the final archive
-BUILD_NAME=12.10
+BUILD_NAME=12.11
TARGET_DIR=Cura-${BUILD_NAME}-${BUILD_TARGET}
##Which versions of external programs to use
if [ "$BUILD_TARGET" = "all" ]; then
$0 win32
$0 linux
- $0 osx64
+ $0 darwin
exit
fi
+#############################
+# Darwin
+#############################
+
+if [ "$BUILD_TARGET" = "darwin" ]; then
+ rm -rf scripts/darwin/build
+ rm -rf scripts/darwin/dist
+
+ python setup.py py2app
+ rc=$?
+ if [[ $rc != 0 ]]; then
+ echo "Cannot build app."
+ exit 1
+ fi
+
+ cd scripts/darwin
+
+ # Install QuickLook plugin
+ mkdir -p dist/Cura.app/Contents/Library/QuickLook
+ cp -a STLQuickLook.qlgenerator dist/Cura.app/Contents/Library/QuickLook/
+
+ # Archive app
+ $TAR cfp - dist/Cura.app | gzip --best -c > ../../${TARGET_DIR}.tar.gz
+
+ # Create sparse image for distribution
+ hdiutil detach /Volumes/Cura\ -\ Ultimaker/
+ rm -rf Cura.dmg.sparseimage
+ hdiutil convert DmgTemplateCompressed.dmg -format UDSP -o Cura.dmg
+ hdiutil resize -size 500m Cura.dmg.sparseimage
+ hdiutil attach Cura.dmg.sparseimage
+ cp -a dist/Cura.app /Volumes/Cura\ -\ Ultimaker/Cura/
+ hdiutil detach /Volumes/Cura\ -\ Ultimaker
+ hdiutil convert Cura.dmg.sparseimage -format UDZO -imagekey zlib-level=9 -ov -o ../../${TARGET_DIR}.dmg
+ exit
+fi
+
+#############################
+# Rest
+#############################
+
# Change working directory to the directory the script is in
# http://stackoverflow.com/a/246128
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
downloadURL http://videocapture.sourceforge.net/VideoCapture-0.9-5.zip
downloadURL http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20120927-git-13f0cd6-win32-static.7z
downloadURL http://sourceforge.net/projects/comtypes/files/comtypes/0.6.2/comtypes-0.6.2.win32.exe
+ downloadURL http://www.uwe-sieber.de/files/ejectmedia.zip
#Get pypy
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
else
extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe
extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/licenses
extract comtypes-0.6.2.win32.exe
-
+ extract ejectmedia.zip Win32
+
mkdir -p ${TARGET_DIR}/python
mkdir -p ${TARGET_DIR}/Cura/
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
mv VideoCapture-0.9-5/Python27/DLLs/vidcap.pyd ${TARGET_DIR}/python/DLLs
mv ffmpeg-20120927-git-13f0cd6-win32-static/bin/ffmpeg.exe ${TARGET_DIR}/Cura/
mv ffmpeg-20120927-git-13f0cd6-win32-static/licenses ${TARGET_DIR}/Cura/ffmpeg-licenses/
+ mv Win32/EjectMedia.exe ${TARGET_DIR}/Cura/
rm -rf \$_OUTDIR
rm -rf PURELIB
rm -rf PLATLIB
rm -rf VideoCapture-0.9-5
rm -rf numpy-1.6.2-sse2.exe
rm -rf ffmpeg-20120927-git-13f0cd6-win32-static
-
+
#Clean up portable python a bit, to keep the package size down.
rm -rf ${TARGET_DIR}/python/PyScripter.*
rm -rf ${TARGET_DIR}/python/Doc
cp -a scripts/${BUILD_TARGET}/*.bat $TARGET_DIR/
else
cp -a scripts/${BUILD_TARGET}/*.sh $TARGET_DIR/
- cp -a scripts/${BUILD_TARGET}/*.command $TARGET_DIR/
fi
#package the result
#cd ${TARGET_DIR}
#7z a ../${TARGET_DIR}.zip *
#cd ..
-
+
if [ ! -z `which wine` ]; then
#if we have wine, try to run our nsis script.
rm -rf scripts/win32/dist
ln -sf `pwd`/${TARGET_DIR} scripts/win32/dist
- wine ~/.wine/drive_c/Program\ Files/NSIS/makensis.exe /DVERSION=${BUILD_NAME} scripts/win32/installer.nsi
+ wine ~/.wine/drive_c/Program\ Files/NSIS/makensis.exe /DVERSION=${BUILD_NAME} scripts/win32/installer.nsi
mv scripts/win32/Cura_${BUILD_NAME}.exe ./
fi
if [ -f '/c/Program Files (x86)/NSIS/makensis.exe' ]; then