Merge branch 'master' of github.com:openscad/openscad

This commit is contained in:
Marius Kintel 2015-11-03 02:21:45 -05:00
commit 16026cfed7
9 changed files with 132 additions and 30 deletions

View file

@ -13,10 +13,12 @@ boost {
macx: DEFINES += __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
# MXE cross build
CONFIG(mingw-cross-env) {
DEFINES += BOOST_STATIC
CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) {
DEFINES += BOOST_THREAD_USE_LIB
DEFINES += Boost_USE_STATIC_LIBS
!CONFIG(mingw-cross-env-shared) {
DEFINES += BOOST_STATIC
DEFINES += Boost_USE_STATIC_LIBS
}
BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt
}

View file

@ -10,7 +10,7 @@ cgal {
message("CGAL location: $$CGAL_DIR")
}
CONFIG(mingw-cross-env) {
CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) {
LIBS += -lgmp -lmpfr -lCGAL
QMAKE_CXXFLAGS += -frounding-math
} else {

View file

@ -10,7 +10,9 @@ glew {
unix:LIBS += -lGLEW
CONFIG(mingw-cross-env): {
DEFINES += GLEW_STATIC
!CONFIG(mingw-cross-env-shared) {
DEFINES += GLEW_STATIC
}
} else {
win32:LIBS += -lglew32
}

View file

@ -40,7 +40,7 @@ isEmpty(GLIB2_LIBPATH) {
GLIB2_LIBS = -L$$GLIB2_LIBPATH -lglib-2.0
}
CONFIG(mingw-cross-env) {
CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) {
#message("mingw")
isEmpty(GLIB2_INCLUDEPATH) {
MXE_TARGET_DIR=$$(MXETARGETDIR)

View file

@ -1,4 +1,6 @@
# cross compilation unix->win32
# To use static linking, pass CONFIG+=mingw-cross-env to qmake
# To use shared linking, pass CONFIG+=mingw-cross-env-shared to qmake
CONFIG(mingw-cross-env) {
LIBS += mingw-cross-env/lib/libglew32s.a
LIBS += mingw-cross-env/lib/libglut.a
@ -19,6 +21,17 @@ CONFIG(mingw-cross-env) {
LIBS += mingw-cross-env/lib/libexpat.a
LIBS += mingw-cross-env/lib/libintl.a
LIBS += mingw-cross-env/lib/libiconv.a
}
CONFIG(mingw-cross-env-shared) {
# on MXE, the shared library .dll files are under 'bin' not 'lib'.
QMAKE_LFLAGS += -L./mingw-cross-env/bin
LIBS += -lglew32 -lglut -lopengl32 -lGLEW -lglu32
LIBS += -lopencsg -lmpfr -lgmp -lCGAL
LIBS += -lfontconfig -lfreetype -lharfbuzz -lbz2 -lexpat -lintl -liconv
}
CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) {
QMAKE_CXXFLAGS += -fpermissive
WINSTACKSIZE = 8388608 # 8MB # github issue 116
QMAKE_CXXFLAGS += -Wl,--stack,$$WINSTACKSIZE

View file

@ -209,7 +209,7 @@ mdi {
include(common.pri)
# mingw has to come after other items so OBJECT_DIRS will work properly
CONFIG(mingw-cross-env) {
CONFIG(mingw-cross-env)|CONFIG(mingw-cross-env-shared) {
include(mingw-cross-env.pri)
}

View file

@ -72,16 +72,17 @@ elif [[ $OSTYPE == "linux-gnu" ]]; then
echo "Detected build-machine ARCH: $ARCH"
fi
if [ "`echo $* | grep mingw32`" ]; then
if [ "`echo $* | grep mingw`" ]; then
OS=UNIX_CROSS_WIN
ARCH=32
echo Mingw-cross build using ARCH=32
fi
if [ "`echo $* | grep mingw64`" ]; then
OS=UNIX_CROSS_WIN
ARCH=64
echo Mingw-cross build using ARCH=64
MXELIBTYPE=static
if [ "`echo $* | grep mingw64`" ]; then
ARCH=64
fi
if [ "`echo $* | grep shared`" ]; then
MXELIBTYPE=shared
fi
echo Mingw-cross build using ARCH=$ARCH MXELIBTYPE=$MXELIBTYPE
fi
if [ "`echo $* | grep snapshot`" ]; then
@ -179,7 +180,7 @@ case $OS in
QT_SELECT=5
export QT_SELECT
;;
WIN)
WIN)
export QTDIR=/c/devmingw/qt2009.03
export QTMAKESPEC=win32-g++
export PATH=$PATH:/c/devmingw/qt2009.03/bin:/c/devmingw/qt2009.03/qt/bin
@ -187,8 +188,8 @@ case $OS in
ZIPARGS="a -tzip"
TARGET=release
;;
UNIX_CROSS_WIN)
. ./scripts/setenv-mingw-xbuild.sh $ARCH
UNIX_CROSS_WIN)
. ./scripts/setenv-mingw-xbuild.sh $ARCH $MXELIBTYPE
TARGET=release
ZIP="zip"
ZIPARGS="-r -q"
@ -198,7 +199,12 @@ esac
case $OS in
UNIX_CROSS_WIN)
cd $DEPLOYDIR && qmake VERSION=$VERSION OPENSCAD_COMMIT=$OPENSCAD_COMMIT CONFIG+="$CONFIG" CONFIG+=mingw-cross-env CONFIG-=debug ../openscad.pro
cd $DEPLOYDIR
MINGWCONFIG=mingw-cross-env
if [ $MXELIBTYPE = "shared" ]; then
MINGWCONFIG=mingw-cross-env-shared
fi
qmake VERSION=$VERSION OPENSCAD_COMMIT=$OPENSCAD_COMMIT CONFIG+="$CONFIG" CONFIG+=$MINGWCONFIG CONFIG-=debug ../openscad.pro
cd $OPENSCADDIR
;;
*)
@ -425,9 +431,78 @@ case $OS in
INSTFILE=$DEPLOYDIR/OpenSCAD-$VERSION-x86-$ARCH-Installer.exe
#package
if [ $MXELIBTYPE = "shared" ]; then
flprefix=$DEPLOYDIR/mingw-cross-env/bin
echo Copying dlls for shared library build
echo from $flprefix
echo to $DEPLOYDIR/$TARGET
flist=
# fl="$fl opengl.dll" # use Windows version?
# fl="$fl libmpfr.dll" # does not exist
fl="$fl libgmp-10.dll"
fl="$fl libgmpxx-4.dll"
fl="$fl libboost_filesystem-mt.dll"
fl="$fl libboost_program_options-mt.dll"
fl="$fl libboost_regex-mt.dll"
fl="$fl libboost_chrono-mt.dll"
fl="$fl libboost_system-mt.dll"
fl="$fl libboost_thread_win32-mt.dll"
fl="$fl libCGAL.dll"
fl="$fl libCGAL_Core.dll"
fl="$fl GLEW.dll"
fl="$fl libglib-2.0-0.dll"
fl="$fl libopencsg-1.dll"
fl="$fl libharfbuzz-0.dll"
# fl="$fl libharfbuzz-gobject-0.dll" # ????
fl="$fl libfontconfig-1.dll"
fl="$fl libexpat-1.dll"
fl="$fl libbz2.dll"
fl="$fl libintl-8.dll"
fl="$fl libiconv-2.dll"
fl="$fl libfreetype-6.dll"
fl="$fl libpcre16-0.dll"
fl="$fl zlib1.dll"
fl="$fl libpng16-16.dll"
fl="$fl icudt54.dll"
fl="$fl icudt.dll"
fl="$fl icuin.dll"
fl="$fl libstdc++-6.dll"
fl="$fl ../qt5/lib/qscintilla2.dll"
fl="$fl ../qt5/bin/Qt5PrintSupport.dll"
fl="$fl ../qt5/bin/Qt5Core.dll"
fl="$fl ../qt5/bin/Qt5Gui.dll"
fl="$fl ../qt5/bin/Qt5OpenGL.dll"
# fl="$fl ../qt5/bin/QtSvg4.dll" # why is this here?
fl="$fl ../qt5/bin/Qt5Widgets.dll"
fl="$fl ../qt5/bin/Qt5PrintSupport.dll"
fl="$fl ../qt5/bin/Qt5PrintSupport.dll"
for dllfile in $fl; do
if [ -e $flprefix/$dllfile ]; then
echo $flprefix/$dllfile
cp $flprefix/$dllfile $DEPLOYDIR/$TARGET/
else
echo cannot find $flprefix/$dllfile
echo stopping build.
exit 1
fi
done
fi
echo "Copying main binary .exe, .com, and dlls"
echo "from $DEPLOYDIR/$TARGET"
echo "to $DEPLOYDIR/openscad-$VERSION"
TMPTAR=$DEPLOYDIR/tmpmingw.$ARCH.$MXELIBTYPE.tar
cd $DEPLOYDIR
cd $TARGET
tar cvf $TMPTAR --exclude=winconsole.o .
cd $DEPLOYDIR
cd ./openscad-$VERSION
tar xvf $TMPTAR
cd $DEPLOYDIR
rm -f $TMPTAR
echo "Creating binary zip package"
cp $TARGET/openscad.exe openscad-$VERSION
cp $TARGET/openscad.com openscad-$VERSION
rm -f OpenSCAD-$VERSION.x86-$ARCH.zip
"$ZIP" $ZIPARGS $BINFILE openscad-$VERSION
cd $OPENSCADDIR

View file

@ -4,10 +4,12 @@
#
# Usage:
#
# source ./scripts/setenv-mingw-xbuild.sh # 32 bit build
# source ./scripts/setenv-mingw-xbuild.sh 64 # 64 bit build
# source ./scripts/setenv-mingw-xbuild.sh clean # Clean up exported variables
# source ./scripts/setenv-mingw-xbuild.sh qt5 # use qt5 (experimental)
# source ./scripts/setenv-mingw-xbuild.sh # 32 bit build
# source ./scripts/setenv-mingw-xbuild.sh shared # 32 bit build, shared libs
# source ./scripts/setenv-mingw-xbuild.sh 64 # 64 bit build
# source ./scripts/setenv-mingw-xbuild.sh 64 shared # 64 bit build, shared libs
# source ./scripts/setenv-mingw-xbuild.sh clean # Clean up exported variables
# source ./scripts/setenv-mingw-xbuild.sh qt5 # use qt5 (experimental)
#
# Prerequisites:
#
@ -22,8 +24,14 @@ if [ ! $BASEDIR ]; then
BASEDIR=$HOME/openscad_deps
fi
DEPLOYDIR64=$OPENSCADDIR/mingw64.static
DEPLOYDIR32=$OPENSCADDIR/mingw32.static
MXELIBTYPE=static
if [ "`echo $* | grep shared `" ]; then
MXELIBTYPE=shared
fi
DEPLOYDIR64=$OPENSCADDIR/mingw64.$MXELIBTYPE
DEPLOYDIR32=$OPENSCADDIR/mingw32.$MXELIBTYPE
if [ ! $DEPLOYDIR ]; then
if [ "`echo $* | grep 64 `" ]; then
@ -61,9 +69,9 @@ if [ ! -e $DEPLOYDIR ]; then
fi
if [ "`echo $* | grep 64 `" ]; then
MXETARGETDIR=$MXEDIR/usr/x86_64-w64-mingw32.static
MXETARGETDIR=$MXEDIR/usr/x86_64-w64-mingw32.$MXELIBTYPE
else
MXETARGETDIR=$MXEDIR/usr/i686-w64-mingw32.static
MXETARGETDIR=$MXEDIR/usr/i686-w64-mingw32.$MXELIBTYPE
fi
if [ ! $MINGWX_SAVED_ORIGINAL_PATH ]; then
@ -96,6 +104,7 @@ export OPENSCAD_LIBRARIES
export BASEDIR
export MXEDIR
export MXETARGETDIR
export MXELIBTYPE
export DEPLOYDIR
export PATH
export MINGWX_SAVED_ORIGINAL_PATH
@ -105,6 +114,7 @@ echo OPENSCAD_LIBRARIES: $OPENSCAD_LIBRARIES
echo BASEDIR: $BASEDIR
echo MXEDIR: $MXEDIR
echo MXETARGETDIR: $MXETARGETDIR
echo MXELIBTYPE: $MXELIBTYPE
echo DEPLOYDIR: $DEPLOYDIR
echo MXEQTSUBDIR: $MXEQTSUBDIR
if [ "`echo $* | grep clean`" ]; then

View file

@ -1,7 +1,7 @@
# get VERSION from system date
isEmpty(VERSION) {
win32*:!mingw-cross-env {
win32*:!mingw-cross-env:!mingw-cross-env-shared {
#
# Windows XP date command only has one argument, /t
# and it can print the date in various localized formats.