diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:17:05 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:17:05 (GMT) |
commit | 6940d171812565209efe679a5d923417c3f47d4a (patch) | |
tree | 2a05d2f8865ff1127f854db41bf31143f64ccf2d /scripts/release-common.sh | |
parent | 2b19f33ee1ddce246c2bfe0a05fe379d0117a741 (diff) |
reorganized file structure layout. more to follow...
git-svn-id: http://svn.clifford.at/openscad/trunk@364 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'scripts/release-common.sh')
-rwxr-xr-x | scripts/release-common.sh | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/scripts/release-common.sh b/scripts/release-common.sh new file mode 100755 index 0000000..9624035 --- /dev/null +++ b/scripts/release-common.sh @@ -0,0 +1,129 @@ +#!/bin/sh +# +# This script creates a binary release of OpenSCAD. +# This should work under Mac OS X and Windows (msys). Linux support pending. +# The script will create a file called openscad-<versionstring>.zip +# in the current directory. +# +# Usage: release-common.sh [-v <versionstring>] +# -v Version string (e.g. -v 2010.01) +# +# If no version string is given, todays date will be used (YYYY-MM-DD) +# If no make target is given, release will be used on Windows, none one Mac OS X +# + +printUsage() +{ + echo "Usage: $0 -v <versionstring> + echo + echo " Example: $0 -v 2010.01 +} + +if [[ $OSTYPE =~ "darwin" ]]; then + OS=MACOSX +elif [[ $OSTYPE == "msys" ]]; then + OS=WIN +fi + +echo "Detected OS: $OS" + +while getopts 'v:' c +do + case $c in + v) VERSION=$OPTARG;; + esac +done + +if test -z "$VERSION"; then + VERSION=`date "+%Y.%m.%d"` +fi + +echo "Building openscad-$VERSION $CONFIGURATION..." + +case $OS in + MACOSX) + CONFIG=mdi + TARGET= + ;; + WIN) + unset CONFIG + export QTDIR=/c/devmingw/qt2009.03 + export QTMAKESPEC=win32-g++ + export PATH=$PATH:/c/devmingw/qt2009.03/bin:/c/devmingw/qt2009.03/qt/bin + ZIP="/c/Program Files/7-Zip/7z.exe" + ZIPARGS="a -tzip" + TARGET=release + ;; +esac + +qmake VERSION=$VERSION CONFIG+=$CONFIG CONFIG-=debug openscad.pro +make -s clean +case $OS in + MACOSX) + rm -rf OpenSCAD.app + ;; + WIN) + #if the following files are missing their tried removal stops the build process on msys + touch -t 200012121010 parser_yacc.h parser_yacc.cpp lexer_lex.cpp + ;; +esac + +make -j2 $TARGET + +echo "Creating directory structure..." +rm -rf openscad-$VERSION +mkdir openscad-$VERSION +EXAMPLESDIR=openscad-$VERSION/examples/ + +case $OS in + MACOSX) + OPENCSGDIR=`cd "$OPENCSGDIR" && pwd` + mkdir OpenSCAD.app/Contents/Frameworks + cp $OPENCSGDIR/lib/libopencsg.dylib OpenSCAD.app/Contents/Frameworks + cp /opt/local/lib/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks + cp /Library/Frameworks/QtOpenGL.framework/Versions/4/QtOpenGL OpenSCAD.app/Contents/Frameworks + cp /Library/Frameworks/QtGui.framework/Versions/4/QtGui OpenSCAD.app/Contents/Frameworks + cp /Library/Frameworks/QtCore.framework/Versions/4/QtCore OpenSCAD.app/Contents/Frameworks + install_name_tool -change $OPENCSGDIR/lib/libopencsg.1.dylib @executable_path/../Frameworks/libopencsg.dylib OpenSCAD.app/Contents/MacOS/openscad + install_name_tool -change QtOpenGL.framework/Versions/4/QtOpenGL @executable_path/../Frameworks/QtOpenGL OpenSCAD.app/Contents/MacOS/openscad + install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/MacOS/openscad + install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/MacOS/openscad + install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/QtOpenGL + install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtOpenGL + install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/QtGui + install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/MacOS/openscad + install_name_tool -id libopencsg.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib + install_name_tool -change /opt/local/lib/libGLEW.1.5.1.dylib @executable_path/../Frameworks/libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libopencsg.dylib + install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui OpenSCAD.app/Contents/Frameworks/libopencsg.dylib + install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore OpenSCAD.app/Contents/Frameworks/libopencsg.dylib + install_name_tool -id libGLEW.1.5.1.dylib OpenSCAD.app/Contents/Frameworks/libGLEW.1.5.1.dylib + mv OpenSCAD.app openscad-$VERSION + EXAMPLESDIR=openscad-$VERSION/OpenSCAD.app/Contents/Resources/examples + ;; + WIN) + #package + cp win32deps/* openscad-$VERSION + cp $TARGET/openscad.exe openscad-$VERSION + ;; +esac + +mkdir -p $EXAMPLESDIR +cp examples/* $EXAMPLESDIR +chmod -R 644 $EXAMPLESDIR/* + +echo "Creating archive.." +case $OS in + MACOSX) + hdiutil create -quiet -ov -srcfolder openscad-$VERSION/OpenSCAD.app OpenSCAD-$VERSION.dmg + hdiutil internet-enable -yes -quiet OpenSCAD-$VERSION.dmg + echo "Binary created: OpenSCAD-$VERSION.dmg" + ;; + *) + rm -f openscad-$VERSION.zip + "$ZIP" $ZIPARGS openscad-$VERSION.zip openscad-$VERSION + echo "Binary created: openscad-$VERSION.zip" + ;; +esac + +rm -rf openscad-$VERSION + |