chiark / gitweb /
Finish updating README for Mac OS X.
[cura.git] / package.sh
index 84f1cc600fd6e5b07d3b828ccf27fdf526c0af8d..b3ec909611b89ec69c6c4f4d8753cf1975187265 100755 (executable)
@@ -16,13 +16,12 @@ BUILD_TARGET=${1:-all}
 ##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.09
-TARGET_DIR=${BUILD_TARGET}-Cura-${BUILD_NAME}
+BUILD_NAME=12.11
+TARGET_DIR=Cura-${BUILD_NAME}-${BUILD_TARGET}
 
 ##Which versions of external programs to use
 PYPY_VERSION=1.9
 WIN_PORTABLE_PY_VERSION=2.7.2.1
-WIN_PYSERIAL_VERSION=2.5
 
 #############################
 # Support functions
@@ -50,6 +49,13 @@ function downloadURL
        fi
 }
 
+function extract
+{
+       echo "Extracting $*"
+       echo "7z x -y $*" >> log.txt
+       7z x -y $* >> log.txt
+}
+
 #############################
 # Actual build script
 #############################
@@ -85,24 +91,24 @@ fi
 if [ $BUILD_TARGET = "win32" ]; then
        #Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
        downloadURL http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
-       downloadURL http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe
+       downloadURL http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.win32.exe
        downloadURL http://sourceforge.net/projects/pyopengl/files/PyOpenGL/3.0.1/PyOpenGL-3.0.1.win32.exe
        downloadURL http://sourceforge.net/projects/numpy/files/NumPy/1.6.2/numpy-1.6.2-win32-superpack-python2.7.exe
        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
+elif [ $BUILD_TARGET = "osx64" ]; then
        downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
-fi
-
-#Get our own version of Printrun
-if [ ! -d "Printrun" ]; then
-  git clone git://github.com/daid/Printrun.git
+       downloadURL http://python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg
+       downloadURL http://sourceforge.net/projects/numpy/files/NumPy/1.6.2/numpy-1.6.2-py2.7-python.org-macosx10.3.dmg
+       downloadURL http://pypi.python.org/packages/source/p/pyserial/pyserial-2.6.tar.gz
+       downloadURL http://pypi.python.org/packages/source/P/PyOpenGL/PyOpenGL-3.0.2.tar.gz
+       downloadURL http://downloads.sourceforge.net/wxpython/wxPython2.9-osx-2.9.4.0-cocoa-py2.7.dmg
 else
-  echo "Updating Printrun"
-  cd Printrun
-  git pull
-  cd ..
+       downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
 fi
 
 #############################
@@ -111,28 +117,39 @@ fi
 rm -rf ${TARGET_DIR}
 mkdir -p ${TARGET_DIR}
 
+rm -f log.txt
 if [ $BUILD_TARGET = "win32" ]; then
        #For windows extract portable python to include it.
-       7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App
-       7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages
-       7z x pyserial-${WIN_PYSERIAL_VERSION}.exe PURELIB
-       7z x PyOpenGL-3.0.1.win32.exe PURELIB
-       7z x numpy-1.6.2-win32-superpack-python2.7.exe numpy-1.6.2-sse2.exe
-       7z x numpy-1.6.2-sse2.exe PLATLIB
-       7z x VideoCapture-0.9-5.zip
-
+       extract PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App
+       extract PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages
+       extract pyserial-2.5.win32.exe PURELIB
+       extract PyOpenGL-3.0.1.win32.exe PURELIB
+       extract numpy-1.6.2-win32-superpack-python2.7.exe numpy-1.6.2-sse2.exe
+       extract numpy-1.6.2-sse2.exe PLATLIB
+       extract VideoCapture-0.9-5.zip VideoCapture-0.9-5/Python27/DLLs/vidcap.pyd
+       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 \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
        mv PURELIB/serial ${TARGET_DIR}/python/Lib
        mv PURELIB/OpenGL ${TARGET_DIR}/python/Lib
+       mv PURELIB/comtypes ${TARGET_DIR}/python/Lib
        mv PLATLIB/numpy ${TARGET_DIR}/python/Lib
        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.*
@@ -149,7 +166,7 @@ fi
 
 #Extract pypy
 if [ $BUILD_TARGET = "win32" ]; then
-       7z x pypy-${PYPY_VERSION}-win32.zip -o${TARGET_DIR}
+       extract pypy-${PYPY_VERSION}-win32.zip -o${TARGET_DIR}
 else
        cd ${TARGET_DIR}; $TAR -xjf ../pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2; cd ..
 fi
@@ -158,20 +175,16 @@ mv ${TARGET_DIR}/pypy-* ${TARGET_DIR}/pypy
 rm -rf ${TARGET_DIR}/pypy/lib-python/2.7/test
 
 #add Cura
-cp -a Cura ${TARGET_DIR}/Cura
+mkdir -p ${TARGET_DIR}/Cura
+cp -a Cura/* ${TARGET_DIR}/Cura
 #Add cura version file
 echo $BUILD_NAME > ${TARGET_DIR}/Cura/version
 
-#add printrun
-cp -a Printrun ${TARGET_DIR}/Printrun
-rm -rf ${TARGET_DIR}/Printrun/.git*
-
 #add script files
 if [ $BUILD_TARGET = "win32" ]; then
     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
@@ -187,12 +200,36 @@ if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
                        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 
+                       mv scripts/win32/Cura_${BUILD_NAME}.exe ./
                fi
                if [ -f '/c/Program Files (x86)/NSIS/makensis.exe' ]; then
                        rm -rf scripts/win32/dist
                        mv `pwd`/${TARGET_DIR} scripts/win32/dist
-                       '/c/Program Files (x86)/NSIS/makensis.exe' 'scripts/win32/installer.nsi' -DVERSION=${BUILD_NAME}
+                       '/c/Program Files (x86)/NSIS/makensis.exe' -DVERSION=${BUILD_NAME} 'scripts/win32/installer.nsi' >> log.txt
+                       mv scripts/win32/Cura_${BUILD_NAME}.exe ./
                fi
+       elif [ $BUILD_TARGET = "osx64" ]; then
+               echo "Building osx app"
+               mkdir -p scripts/osx64/Cura.app/Contents/Resources
+               mkdir -p scripts/osx64/Cura.app/Contents/Pkgs
+               rm -rf scripts/osx64/Cura.app/Contents/Resources/Cura
+               rm -rf scripts/osx64/Cura.app/Contents/Resources/pypy
+               cp -a ${TARGET_DIR}/* scripts/osx64/Cura.app/Contents/Resources
+               cp python-2.7.3-macosx10.6.dmg scripts/osx64/Cura.app/Contents/Pkgs
+               cp numpy-1.6.2-py2.7-python.org-macosx10.3.dmg scripts/osx64/Cura.app/Contents/Pkgs
+               cp pyserial-2.6.tar.gz scripts/osx64/Cura.app/Contents/Pkgs
+               cp PyOpenGL-3.0.2.tar.gz scripts/osx64/Cura.app/Contents/Pkgs
+               cp wxPython2.9-osx-2.9.4.0-cocoa-py2.7.dmg scripts/osx64/Cura.app/Contents/Pkgs
+               cd scripts/osx64
+               $TAR cfp - Cura.app | gzip --best -c > ../../${TARGET_DIR}.tar.gz
+               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 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
        else
                echo "Archiving to ${TARGET_DIR}.tar.gz"
                $TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
@@ -200,4 +237,3 @@ if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
 else
        echo "Installed into ${TARGET_DIR}"
 fi
-