mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-03 23:30:42 +08:00
Updated build script so it works for osx. (Thanks bbum!)
Added osx pronterface start script (Thanks bbum!) General update to the build script so it's easier to use.
This commit is contained in:
parent
3b0845f87e
commit
559f855ef0
155
build.sh
155
build.sh
@ -1,47 +1,78 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
|
|
||||||
|
##Select the build target
|
||||||
|
BUILD_TARGET=win32
|
||||||
|
#BUILD_TARGET=linux
|
||||||
|
#BUILD_TARGET=osx64
|
||||||
|
|
||||||
|
##Do we need to create the final archive
|
||||||
|
ARCHIVE_FOR_DISTRIBUTION=1
|
||||||
|
##Which version name are we appending to the final archive
|
||||||
|
BUILD_NAME=Alpha4
|
||||||
|
TARGET_DIR=${BUILD_TARGET}-SkeinPyPy-${BUILD_NAME}
|
||||||
|
|
||||||
|
##Which versions of external programs to use
|
||||||
PYPY_VERSION=1.8
|
PYPY_VERSION=1.8
|
||||||
WIN_PORTABLE_PY_VERSION=2.7.2.1
|
WIN_PORTABLE_PY_VERSION=2.7.2.1
|
||||||
WIN_PYSERIAL_VERSION=2.5
|
WIN_PYSERIAL_VERSION=2.5
|
||||||
BUILD_NAME=Alpha4
|
|
||||||
|
#############################
|
||||||
|
# Support functions
|
||||||
|
#############################
|
||||||
|
function checkTool
|
||||||
|
{
|
||||||
|
if [ -z `which $1` ]; then
|
||||||
|
echo "The $1 command must be somewhere in your \$PATH."
|
||||||
|
echo "Fix your \$PATH or install $2"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Actual build script
|
# Actual build script
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
#Check if we have 7zip, needed to extract and packup a bunch of packages.
|
checkTool git "git: http://git-scm.com/"
|
||||||
7z > /dev/null 2>&1
|
checkTool curl "curl: http://curl.haxx.se/"
|
||||||
if [ $? != 0 ]; then
|
if [ $BUILD_TARGET = "win32" ]; then
|
||||||
echo $0 requires 7zip to run.
|
#Check if we have 7zip, needed to extract and packup a bunch of packages for windows.
|
||||||
exit 1
|
checkTool 7z "7zip: http://www.7-zip.org/"
|
||||||
|
fi
|
||||||
|
#For building under MacOS we need gnutar instead of tar
|
||||||
|
if [ -z `which gnutar` ]; then
|
||||||
|
TAR=tar
|
||||||
|
else
|
||||||
|
TAR=gnutar
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
# Download all needed files.
|
# Download all needed files.
|
||||||
#############################
|
#############################
|
||||||
|
|
||||||
#Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
|
if [ $BUILD_TARGET = "win32" ]; then
|
||||||
if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then
|
#Get portable python for windows and extract it. (Linux and Mac need to install python themselfs)
|
||||||
wget http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
|
if [ ! -f "PortablePython_${WIN_PORTABLE_PY_VERSION}.exe" ]; then
|
||||||
fi
|
curl -L -O http://ftp.nluug.nl/languages/python/portablepython/v2.7/PortablePython_${WIN_PORTABLE_PY_VERSION}.exe
|
||||||
if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then
|
fi
|
||||||
wget http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download
|
if [ ! -f pyserial-${WIN_PYSERIAL_VERSION}.exe ]; then
|
||||||
mv download pyserial-${WIN_PYSERIAL_VERSION}.exe
|
curl -L -O http://sourceforge.net/projects/pyserial/files/pyserial/${WIN_PYSERIAL_VERSION}/pyserial-${WIN_PYSERIAL_VERSION}.win32.exe/download
|
||||||
fi
|
mv download pyserial-${WIN_PYSERIAL_VERSION}.exe
|
||||||
#Get pypy
|
fi
|
||||||
if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
|
#Get pypy
|
||||||
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
|
if [ ! -f "pypy-${PYPY_VERSION}-win32.zip" ]; then
|
||||||
fi
|
curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-win32.zip
|
||||||
if [ ! -f "pypy-${PYPY_VERSION}-linux.tar.bz2" ]; then
|
fi
|
||||||
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-linux.tar.bz2
|
else
|
||||||
fi
|
if [ ! -f "pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2" ]; then
|
||||||
if [ ! -f "pypy-${PYPY_VERSION}-osx64.tar.bz2" ]; then
|
curl -L -O https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2
|
||||||
wget https://bitbucket.org/pypy/pypy/downloads/pypy-${PYPY_VERSION}-osx64.tar.bz2
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Get our own version of Printrun
|
#Get our own version of Printrun
|
||||||
rm -rf Printrun
|
rm -rf Printrun
|
||||||
git clone git://github.com/daid/Printrun.git
|
git clone git://github.com/daid/Printrun.git
|
||||||
@ -50,55 +81,55 @@ rm -rf Printrun/.git
|
|||||||
#############################
|
#############################
|
||||||
# Build the packages
|
# Build the packages
|
||||||
#############################
|
#############################
|
||||||
rm -rf target_win32 target_linux target_osx64
|
rm -rf ${TARGET_DIR}
|
||||||
mkdir -p target_win32 target_linux target_osx64
|
mkdir -p ${TARGET_DIR}
|
||||||
|
|
||||||
7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/App
|
if [ $BUILD_TARGET = "win32" ]; then
|
||||||
7z x PortablePython_${WIN_PORTABLE_PY_VERSION}.exe \$_OUTDIR/Lib/site-packages
|
#For windows extract portable python to include it.
|
||||||
7z x pyserial-${WIN_PYSERIAL_VERSION}.exe PURELIB
|
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
|
||||||
|
|
||||||
mkdir -p target_win32/python
|
mkdir -p ${TARGET_DIR}/python
|
||||||
mv \$_OUTDIR/App/* target_win32/python
|
mv \$_OUTDIR/App/* ${TARGET_DIR}/python
|
||||||
mv \$_OUTDIR/Lib/site-packages/wx* target_win32/python/Lib/site-packages/
|
mv \$_OUTDIR/Lib/site-packages/wx* ${TARGET_DIR}/python/Lib/site-packages/
|
||||||
mv PURELIB/serial target_win32/python/Lib
|
mv PURELIB/serial ${TARGET_DIR}/python/Lib
|
||||||
rm -rf \$_OUTDIR
|
rm -rf \$_OUTDIR
|
||||||
rm -rf PURELIB
|
rm -rf PURELIB
|
||||||
|
fi
|
||||||
|
|
||||||
#Extract pypy
|
#Extract pypy
|
||||||
7z x pypy-${PYPY_VERSION}-win32.zip -otarget_win32
|
if [ $BUILD_TARGET = "win32" ]; then
|
||||||
mv target_win32/pypy-${PYPY_VERSION} target_win32/pypy
|
7z x pypy-${PYPY_VERSION}-win32.zip -o${TARGET_DIR}
|
||||||
cd target_linux; tar -xjf ../pypy-${PYPY_VERSION}-linux.tar.bz2; cd ..
|
mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
|
||||||
mv target_linux/pypy-${PYPY_VERSION} target_linux/pypy
|
else
|
||||||
cd target_osx64; tar -xjf ../pypy-${PYPY_VERSION}-osx64.tar.bz2; cd ..
|
cd ${TARGET_DIR}; $TAR -xjf ../pypy-${PYPY_VERSION}-${BUILD_TARGET}.tar.bz2; cd ..
|
||||||
mv target_linux/pypy-${PYPY_VERSION} target_osx64/pypy
|
mv ${TARGET_DIR}/pypy-${PYPY_VERSION} ${TARGET_DIR}/pypy
|
||||||
|
fi
|
||||||
|
|
||||||
#add Skeinforge
|
#add Skeinforge
|
||||||
cp -a SkeinPyPy target_win32/SkeinPyPy
|
cp -a SkeinPyPy ${TARGET_DIR}/SkeinPyPy
|
||||||
cp -a SkeinPyPy target_linux/SkeinPyPy
|
|
||||||
cp -a SkeinPyPy target_osx64/SkeinPyPy
|
|
||||||
|
|
||||||
#add printrun
|
#add printrun
|
||||||
cp -a Printrun target_win32/Printrun
|
mv Printrun ${TARGET_DIR}/Printrun
|
||||||
cp -a Printrun target_linux/Printrun
|
|
||||||
cp -a Printrun target_osx64/Printrun
|
|
||||||
|
|
||||||
#add windows batch files
|
#add script files
|
||||||
echo "python\\python.exe SkeinPyPy\\skeinforge_application\\skeinforge.py" > target_win32/skeinforge.bat
|
cp -a scripts/${BUILD_TARGET}/* $TARGET_DIR/
|
||||||
echo "python\\python.exe printrun\\pronterface.py" > target_win32/printrun.bat
|
|
||||||
|
|
||||||
#add readme file
|
#add readme file
|
||||||
cp README target_win32/README.txt
|
cp README ${TARGET_DIR}/README.txt
|
||||||
cp README target_linux/README.txt
|
|
||||||
cp README target_osx64/README.txt
|
|
||||||
|
|
||||||
#package the result
|
#package the result
|
||||||
cd target_win32
|
if (( ${ARCHIVE_FOR_DISTRIBUTION} )); then
|
||||||
7z a ../SkeinPyPy_Win32_${BUILD_NAME}.zip *
|
if [ $BUILD_TARGET = "win32" ]; then
|
||||||
cd ..
|
cd ${TARGET_DIR}
|
||||||
cd target_linux
|
7z a ../SkeinPyPy_${BUILD_TARGET}_${BUILD_NAME}.zip *
|
||||||
7z a ../SkeinPyPy_Linux_${BUILD_NAME}.zip *
|
cd ..
|
||||||
cd ..
|
else
|
||||||
cd target_osx64
|
echo "Archiving to ${TARGET_DIR}.tar.gz"
|
||||||
7z a ../SkeinPyPy_MacOSX_${BUILD_NAME}.zip *
|
$TAR cfp - ${TARGET_DIR} | gzip --best -c > ${TARGET_DIR}.tar.gz
|
||||||
cd ..
|
fi
|
||||||
|
else
|
||||||
|
echo "Installed into ${TARGET_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
17
scripts/linux/pronterface.sh
Normal file
17
scripts/linux/pronterface.sh
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
python -c 'import wx'
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Requires wx python."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
python -c 'import serial'
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Requires pyserial."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SCRIPT_DIR=`dirname $0`
|
||||||
|
python ${SCRIPT_DIR}/Printrun/pronterface.py
|
||||||
|
|
19
scripts/osx64/pronterface.sh
Normal file
19
scripts/osx64/pronterface.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
arch -arch i386 python2.7 -c 'import wx'
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Requires wx. Download and install from:"
|
||||||
|
echo " http://www.wxpython.org/download.php"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
python2.7 -c 'import serial'
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
echo "Requires pyserial."
|
||||||
|
echo " sudo easy_install-2.7 pyserial"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SCRIPT_DIR=`dirname $0`
|
||||||
|
arch -arch i386 python2.7 ${SCRIPT_DIR}/Printrun/pronterface.py
|
||||||
|
|
1
scripts/win32/printrun.bat
Normal file
1
scripts/win32/printrun.bat
Normal file
@ -0,0 +1 @@
|
|||||||
|
@python\python.exe printrun\pronterface.py
|
2
scripts/win32/skeinforge.bat
Normal file
2
scripts/win32/skeinforge.bat
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
@python\python.exe SkeinPyPy\skeinforge_application\skeinforge.py
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user