package.sh is able to package Cura using new build system.
parent
a9dcc800f2
commit
252244cb65
|
@ -3,7 +3,7 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
*.zip
|
*.zip
|
||||||
*.exe
|
*.exe
|
||||||
osx64-Cura-*
|
darwin-Cura-*
|
||||||
win32-Cura-*
|
win32-Cura-*
|
||||||
linux-Cura-*
|
linux-Cura-*
|
||||||
Printrun
|
Printrun
|
||||||
|
@ -18,5 +18,4 @@ printrun.bat
|
||||||
cura.bat
|
cura.bat
|
||||||
object-mirror.png
|
object-mirror.png
|
||||||
object.png
|
object.png
|
||||||
build/*
|
*darwin.dmg
|
||||||
dist/*
|
|
||||||
|
|
87
package.sh
87
package.sh
|
@ -1,17 +1,17 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# This script is to package the Cura package for Windows/Linux and OSx
|
# This script is to package the Cura package for Windows/Linux and Mac OS X
|
||||||
# This script should run under Linux and OSx, as well as Windows with Cygwin.
|
# This script should run under Linux and Mac OS X, as well as Windows with Cygwin.
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
##Select the build target
|
##Select the build target
|
||||||
BUILD_TARGET=${1:-all}
|
# BUILD_TARGET=${1:-all}
|
||||||
#BUILD_TARGET=win32
|
#BUILD_TARGET=win32
|
||||||
#BUILD_TARGET=linux
|
#BUILD_TARGET=linux
|
||||||
#BUILD_TARGET=osx64
|
BUILD_TARGET=darwin
|
||||||
|
|
||||||
##Do we need to create the final archive
|
##Do we need to create the final archive
|
||||||
ARCHIVE_FOR_DISTRIBUTION=1
|
ARCHIVE_FOR_DISTRIBUTION=1
|
||||||
|
@ -62,10 +62,50 @@ function extract
|
||||||
if [ "$BUILD_TARGET" = "all" ]; then
|
if [ "$BUILD_TARGET" = "all" ]; then
|
||||||
$0 win32
|
$0 win32
|
||||||
$0 linux
|
$0 linux
|
||||||
$0 osx64
|
$0 darwin
|
||||||
exit
|
exit
|
||||||
fi
|
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 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
|
# Change working directory to the directory the script is in
|
||||||
# http://stackoverflow.com/a/246128
|
# http://stackoverflow.com/a/246128
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
@ -100,13 +140,6 @@ if [ $BUILD_TARGET = "win32" ]; then
|
||||||
downloadURL http://www.uwe-sieber.de/files/ejectmedia.zip
|
downloadURL http://www.uwe-sieber.de/files/ejectmedia.zip
|
||||||
#Get pypy
|
#Get pypy
|
||||||
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
|
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
|
||||||
elif [ $BUILD_TARGET = "osx64" ]; then
|
|
||||||
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
|
|
||||||
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
|
else
|
||||||
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
|
downloadURL https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
|
||||||
fi
|
fi
|
||||||
|
@ -131,7 +164,7 @@ if [ $BUILD_TARGET = "win32" ]; then
|
||||||
extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/licenses
|
extract ffmpeg-20120927-git-13f0cd6-win32-static.7z ffmpeg-20120927-git-13f0cd6-win32-static/licenses
|
||||||
extract comtypes-0.6.2.win32.exe
|
extract comtypes-0.6.2.win32.exe
|
||||||
extract ejectmedia.zip Win32
|
extract ejectmedia.zip Win32
|
||||||
|
|
||||||
mkdir -p ${TARGET_DIR}/python
|
mkdir -p ${TARGET_DIR}/python
|
||||||
mkdir -p ${TARGET_DIR}/Cura/
|
mkdir -p ${TARGET_DIR}/Cura/
|
||||||
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
|
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
|
||||||
|
@ -150,7 +183,7 @@ if [ $BUILD_TARGET = "win32" ]; then
|
||||||
rm -rf VideoCapture-0.9-5
|
rm -rf VideoCapture-0.9-5
|
||||||
rm -rf numpy-1.6.2-sse2.exe
|
rm -rf numpy-1.6.2-sse2.exe
|
||||||
rm -rf ffmpeg-20120927-git-13f0cd6-win32-static
|
rm -rf ffmpeg-20120927-git-13f0cd6-win32-static
|
||||||
|
|
||||||
#Clean up portable python a bit, to keep the package size down.
|
#Clean up portable python a bit, to keep the package size down.
|
||||||
rm -rf ${TARGET_DIR}/python/PyScripter.*
|
rm -rf ${TARGET_DIR}/python/PyScripter.*
|
||||||
rm -rf ${TARGET_DIR}/python/Doc
|
rm -rf ${TARGET_DIR}/python/Doc
|
||||||
|
@ -194,12 +227,12 @@ if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
|
||||||
#cd ${TARGET_DIR}
|
#cd ${TARGET_DIR}
|
||||||
#7z a ../${TARGET_DIR}.zip *
|
#7z a ../${TARGET_DIR}.zip *
|
||||||
#cd ..
|
#cd ..
|
||||||
|
|
||||||
if [ ! -z `which wine` ]; then
|
if [ ! -z `which wine` ]; then
|
||||||
#if we have wine, try to run our nsis script.
|
#if we have wine, try to run our nsis script.
|
||||||
rm -rf scripts/win32/dist
|
rm -rf scripts/win32/dist
|
||||||
ln -sf `pwd`/${TARGET_DIR} 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 ./
|
mv scripts/win32/Cura_${BUILD_NAME}.exe ./
|
||||||
fi
|
fi
|
||||||
if [ -f '/c/Program Files (x86)/NSIS/makensis.exe' ]; then
|
if [ -f '/c/Program Files (x86)/NSIS/makensis.exe' ]; then
|
||||||
|
@ -208,28 +241,6 @@ if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
|
||||||
'/c/Program Files (x86)/NSIS/makensis.exe' -DVERSION=${BUILD_NAME} 'scripts/win32/installer.nsi' >> log.txt
|
'/c/Program Files (x86)/NSIS/makensis.exe' -DVERSION=${BUILD_NAME} 'scripts/win32/installer.nsi' >> log.txt
|
||||||
mv scripts/win32/Cura_${BUILD_NAME}.exe ./
|
mv scripts/win32/Cura_${BUILD_NAME}.exe ./
|
||||||
fi
|
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
|
else
|
||||||
echo "Archiving to ${TARGET_DIR}.tar.gz"
|
echo "Archiving to ${TARGET_DIR}.tar.gz"
|
||||||
$TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
|
$TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>12C60</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleDocumentTypes</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>QLGenerator</string>
|
||||||
|
<key>LSItemContentTypes</key>
|
||||||
|
<array>
|
||||||
|
<string>com.pleasantsoftware.uti.stl</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>STLQuickLook</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.pleasantsoftware.qlgenerator.STLQuickLook</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>STLQuickLook</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.1</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>2</string>
|
||||||
|
<key>CFPlugInDynamicRegisterFunction</key>
|
||||||
|
<string></string>
|
||||||
|
<key>CFPlugInDynamicRegistration</key>
|
||||||
|
<string>YES</string>
|
||||||
|
<key>CFPlugInFactories</key>
|
||||||
|
<dict>
|
||||||
|
<key>C02E94A7-9A81-43CB-9663-4C4F30F4D259</key>
|
||||||
|
<string>QuickLookGeneratorPluginFactory</string>
|
||||||
|
</dict>
|
||||||
|
<key>CFPlugInTypes</key>
|
||||||
|
<dict>
|
||||||
|
<key>5E2D9680-5022-40FA-B806-43349622E5B9</key>
|
||||||
|
<array>
|
||||||
|
<string>C02E94A7-9A81-43CB-9663-4C4F30F4D259</string>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>CFPlugInUnloadFunction</key>
|
||||||
|
<string></string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string></string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>4G2008a</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>GM</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>12C37</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx10.8</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>0452</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>4G2008a</string>
|
||||||
|
<key>QLNeedsToBeRunInMainThread</key>
|
||||||
|
<false/>
|
||||||
|
<key>QLPreviewHeight</key>
|
||||||
|
<real>600</real>
|
||||||
|
<key>QLPreviewWidth</key>
|
||||||
|
<real>800</real>
|
||||||
|
<key>QLSupportsConcurrentRequests</key>
|
||||||
|
<false/>
|
||||||
|
<key>QLThumbnailMinimumSize</key>
|
||||||
|
<real>48</real>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 933 B |
25
setup.py
25
setup.py
|
@ -1,5 +1,4 @@
|
||||||
# coding=utf-8
|
# coding=utf-8
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
@ -26,26 +25,12 @@ if sys.platform.startswith('darwin'):
|
||||||
u'LSItemContentTypes': [u'org.khronos.collada.digital-asset-exchange'],
|
u'LSItemContentTypes': [u'org.khronos.collada.digital-asset-exchange'],
|
||||||
u'LSHandlerRank': u'Alternate'
|
u'LSHandlerRank': u'Alternate'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
u'CFBundleTypeName': u'Stereo Lithography 3D Object',
|
|
||||||
u'CFBundleTypeExtensions': [u'stl'],
|
|
||||||
u'CFBundleTypeMIMETypes': [u'text/plain'],
|
|
||||||
u'CFBundleTypeRole': u'Viewer',
|
|
||||||
u'LSHandlerRank': u'Alternate'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
u'CFBundleTypeName': u'Wavefront 3D Object',
|
u'CFBundleTypeName': u'Wavefront 3D Object',
|
||||||
u'CFBundleTypeExtensions': [u'obj'],
|
u'CFBundleTypeExtensions': [u'obj'],
|
||||||
u'CFBundleTypeMIMETypes': [u'application/obj-3d'],
|
u'CFBundleTypeMIMETypes': [u'application/obj-3d'],
|
||||||
u'CFBundleTypeRole': u'Viewer',
|
u'CFBundleTypeRole': u'Viewer',
|
||||||
u'LSHandlerRank': u'Alternate'
|
u'LSHandlerRank': u'Alternate'
|
||||||
},
|
|
||||||
{
|
|
||||||
u'CFBundleTypeName': u'Digital Asset Exchange (DAE)',
|
|
||||||
u'CFBundleTypeExtensions': [u'dae'],
|
|
||||||
u'CFBundleTypeMIMETypes': [u'model/vnd.collada+xml'],
|
|
||||||
u'CFBundleTypeRole': u'Viewer',
|
|
||||||
u'LSHandlerRank': u'Alternate'
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
u'UTImportedTypeDeclarations': [
|
u'UTImportedTypeDeclarations': [
|
||||||
|
@ -54,13 +39,13 @@ if sys.platform.startswith('darwin'):
|
||||||
u'UTTypeConformsTo': [u'public.data'],
|
u'UTTypeConformsTo': [u'public.data'],
|
||||||
u'UTTypeDescription': u'Stereo Lithography 3D object',
|
u'UTTypeDescription': u'Stereo Lithography 3D object',
|
||||||
u'UTTypeReferenceURL': u'http://en.wikipedia.org/wiki/STL_(file_format)',
|
u'UTTypeReferenceURL': u'http://en.wikipedia.org/wiki/STL_(file_format)',
|
||||||
u'UTTypeTagSpecification:': {u'public.filename-extension': [u'stl']}
|
u'UTTypeTagSpecification': {u'public.filename-extension': [u'stl'], u'public.mime-type': [u'text/plain']}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
u'UTTypeIdentifier': u'org.khronos.collada.digital-asset-exchange',
|
u'UTTypeIdentifier': u'org.khronos.collada.digital-asset-exchange',
|
||||||
u'UTTypeConformsTo': [u'public.xml', u'public.audiovisual-content'],
|
u'UTTypeConformsTo': [u'public.xml', u'public.audiovisual-content'],
|
||||||
u'UTTypeDescription': u'Digital Asset Exchange (DAE)',
|
u'UTTypeDescription': u'Digital Asset Exchange (DAE)',
|
||||||
u'UTTypeTagSpecification': {u'public.filename-extension': [u'dae']}
|
u'UTTypeTagSpecification': {u'public.filename-extension': [u'dae'], u'public.mime-type': [u'model/vnd.collada+xml']}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -70,7 +55,9 @@ if sys.platform.startswith('darwin'):
|
||||||
'includes': ['objc', 'Foundation'],
|
'includes': ['objc', 'Foundation'],
|
||||||
'resources': DATA_FILES,
|
'resources': DATA_FILES,
|
||||||
'optimize': '2',
|
'optimize': '2',
|
||||||
'plist': PLIST
|
'plist': PLIST,
|
||||||
|
'bdist_base': 'scripts/darwin/build',
|
||||||
|
'dist_dir': 'scripts/darwin/dist'
|
||||||
}
|
}
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
|
@ -78,7 +65,7 @@ if sys.platform.startswith('darwin'):
|
||||||
app=APP,
|
app=APP,
|
||||||
data_files=DATA_FILES,
|
data_files=DATA_FILES,
|
||||||
options={'py2app': OPTIONS},
|
options={'py2app': OPTIONS},
|
||||||
setup_requires=['py2app'],
|
setup_requires=['py2app']
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
Loading…
Reference in New Issue