From 0407d287b035e4f3aabf718f290eb31365fad26e Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Tue, 4 Oct 2011 23:38:25 -0700 Subject: disable eigen alignment diff --git a/src/dxfdata.h b/src/dxfdata.h index d24541c..e2f229e 100644 --- a/src/dxfdata.h +++ b/src/dxfdata.h @@ -1,5 +1,8 @@ #ifndef DXFDATA_H_ #define DXFDATA_H_ +#ifndef EIGEN_DONT_ALIGN +#define EIGEN_DONT_ALIGN +#endif #include #include @@ -30,7 +33,7 @@ public: } }; - std::vector > points; + std::vector points; std::vector paths; std::vector dims; diff --git a/src/linalg.h b/src/linalg.h index 06991cf..eb1ed3c 100644 --- a/src/linalg.h +++ b/src/linalg.h @@ -1,6 +1,8 @@ #ifndef LINALG_H_ #define LINALG_H_ - +#ifndef EIGEN_DONT_ALIGN +#define EIGEN_DONT_ALIGN +#endif #include #include -- cgit v0.10.1 From 45060878b56070fa12e6f0bb85bad1f6e1687b71 Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Tue, 4 Oct 2011 23:58:34 -0700 Subject: enable compiling with mingw-cross-env diff --git a/boost.pri b/boost.pri index 34a9dd2..2ec580f 100644 --- a/boost.pri +++ b/boost.pri @@ -10,9 +10,14 @@ boost { } } - win32 { - LIBS += -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 - } else { - LIBS += -lboost_thread -lboost_program_options + CONFIG(mingw-cross-env) { + LIBS += -lboost_thread_win32-mt -lboost_program_options-mt + } + else { + win32 { + LIBS += -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 + } else { + LIBS += -lboost_thread -lboost_program_options + } } } diff --git a/cgal.pri b/cgal.pri index 49e44de..bb32d1f 100644 --- a/cgal.pri +++ b/cgal.pri @@ -1,5 +1,6 @@ cgal { DEFINES += ENABLE_CGAL + CONFIG(mingw-cross-env):DEFINES += BOOST_STATIC BOOST_THREAD_USE_LIB Boost_USE_STATIC_LIBS isEmpty(DEPLOYDIR) { # Optionally specify location of CGAL using the @@ -13,10 +14,15 @@ cgal { } } - win32 { - LIBS += $$CGAL_DIR/auxiliary/gmp/lib/libmpfr-4.lib -lCGAL-vc90-mt-s - } else { - LIBS += -lgmp -lmpfr -lCGAL + CONFIG(mingw-cross-env) { + LIBS += -lgmp -lmpfr -lCGAL + } + else { + win32 { + LIBS += $$CGAL_DIR/auxiliary/gmp/lib/libmpfr-4.lib -lCGAL-vc90-mt-s + } else { + LIBS += -lgmp -lmpfr -lCGAL + } } QMAKE_CXXFLAGS += -frounding-math } diff --git a/eigen2.pri b/eigen2.pri index 8344f00..e8bb42c 100644 --- a/eigen2.pri +++ b/eigen2.pri @@ -9,6 +9,11 @@ else { INCLUDEPATH += /opt/local/include/eigen2 } else { - INCLUDEPATH += /usr/include/eigen2 + CONFIG(mingw-cross-env) { + INCLUDEPATH += mingw-cross-env/include/eigen2 + } + else { + INCLUDEPATH += /usr/include/eigen2 + } } } diff --git a/glew.pri b/glew.pri index f2aca4e..3878e6b 100644 --- a/glew.pri +++ b/glew.pri @@ -16,4 +16,5 @@ glew { unix:LIBS += -lGLEW win32:LIBS += -lglew32s + CONFIG(mingw-cross-env):DEFINES += GLEW_STATIC } diff --git a/openscad.pro b/openscad.pro index 3a41800..361525a 100644 --- a/openscad.pro +++ b/openscad.pro @@ -39,8 +39,14 @@ DEFINES += OPENSCAD_VERSION=$$VERSION OPENSCAD_YEAR=$$VERSION_YEAR OPENSCAD_MONT !isEmpty(VERSION_DAY): DEFINES += OPENSCAD_DAY=$$VERSION_DAY win32:DEFINES += _USE_MATH_DEFINES NOMINMAX _CRT_SECURE_NO_WARNINGS YY_NO_UNISTD_H -#disable warning about too long decorated names -win32:QMAKE_CXXFLAGS += -wd4503 +CONFIG(mingw-cross-env) { + LIBS += mingw-prefix/lib/libglew32s.a mingw-prefix/lib/libglut.a mingw-prefix/lib/libopengl32.a mingw-prefix/lib/libGLEW.a mingw-prefix/lib/libglaux.a mingw-prefix/lib/libglu32.a mingw-prefix/lib/libopencsg.a mingw-prefix/lib/libmpfr.a mingw-prefix/lib/libCGAL.a + QMAKE_CXXFLAGS += -fpermissive +} +else { + #disable warning about too long decorated names + win32:QMAKE_CXXFLAGS += -wd4503 +} TEMPLATE = app diff --git a/src/CSGTermEvaluator.h b/src/CSGTermEvaluator.h index cca6c91..b359f5b 100644 --- a/src/CSGTermEvaluator.h +++ b/src/CSGTermEvaluator.h @@ -6,6 +6,10 @@ #include #include "visitor.h" +#if defined __WIN32__ && ! defined _MSC_VER +#include +#endif + class CSGTermEvaluator : public Visitor { public: diff --git a/src/lexer.l b/src/lexer.l index 3cd4a19..cf5cb6d 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -35,8 +35,11 @@ #include #include -//isatty for visual c++ -#ifdef _MSC_VER +//isatty for visual c++ and mingw-cross-env +#if defined __WIN32__ && ! defined _MSC_VER +#include "unistd.h" +#endif +#if defined __WIN32__ || defined _MSC_VER extern "C" int __cdecl _isatty(int _FileHandle); #define isatty _isatty #endif -- cgit v0.10.1 From 6acf0b5019d8b68d81f6c1facd6f889c1f468b53 Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Sun, 16 Oct 2011 00:39:17 -0700 Subject: support mingw win32 builds diff --git a/scripts/release-common.sh b/scripts/release-common.sh index 9261d7a..e12cd9d 100755 --- a/scripts/release-common.sh +++ b/scripts/release-common.sh @@ -1,7 +1,9 @@ #!/bin/sh # # This script creates a binary release of OpenSCAD. -# This should work under Mac OS X and Windows (msys). Linux support pending. +# This should work under Mac OS X, Windows (msys), and Linux cross-compiling +# for windows using mingw-cross-env (use like: OS=LINXWIN release-common.sh). +# Linux support pending. # The script will create a file called openscad-.zip # in the current directory. # @@ -54,9 +56,23 @@ case $OS in ZIPARGS="a -tzip" TARGET=release ;; + LINXWIN) + unset CONFIG + TARGET=release + ZIP="zip" + ZIPARGS="-r" + ;; +esac + +case $OS in + LINXWIN) + i686-pc-mingw32-qmake VERSION=$VERSION CONFIG+=$CONFIG CONFIG+=mingw-cross-env CONFIG-=debug openscad.pro + ;; + *) + qmake VERSION=$VERSION CONFIG+=$CONFIG CONFIG-=debug openscad.pro + ;; esac -qmake VERSION=$VERSION CONFIG+=$CONFIG CONFIG-=debug openscad.pro make -s clean case $OS in MACOSX) @@ -122,4 +138,16 @@ case $OS in rm -rf openscad-$VERSION echo "Binary created: openscad-$VERSION.zip" ;; + LINXWIN) + #package + cp $TARGET/openscad.exe openscad-$VERSION + rm -f OpenSCAD-$VERSION.zip + "$ZIP" $ZIPARGS OpenSCAD-$VERSION.zip openscad-$VERSION + cp scripts/installer.nsi openscad-$VERSION/ + cd openscad-$VERSION && makensis installer.nsi && cd .. + cp openscad-$VERSION/openscad_setup.exe OpenSCAD-$VERSION-Installer.exe + rm -rf openscad-$VERSION + echo "Binary created: OpenSCAD-$VERSION.zip" + echo "Installer created: OpenSCAD-$VERSION-Installer.exe" + ;; esac diff --git a/scripts/update-web.sh b/scripts/update-web.sh index 4180d01..9036d9b 100755 --- a/scripts/update-web.sh +++ b/scripts/update-web.sh @@ -1,13 +1,27 @@ #!/bin/bash -dmgfile=$1 -if [ -z "$dmgfile" ]; then - echo "Usage: $0 " +# Works with Mac OS X and Linux cross-compiling for windows using +# mingw-cross-env (use like: OS=LINXWIN update-web.sh file1.zip file2.exe). + +file1=$1 +if [ -z "$file1" ]; then + echo "Usage: $0 []" exit 1 fi + +if [[ $OSTYPE =~ "darwin" ]]; then + OS=MACOSX +fi + indexfile=../openscad.github.com/index.html if [ -f $indexfile ]; then - sed -i .backup -e "s/^\(.*mac-snapshot.*\)\(OpenSCAD-.*\.dmg\)\(.*\)\(OpenSCAD-.*dmg\)\(.*$\)/\\1$dmgfile\\3$dmgfile\\5/" $indexfile + if [ $OS == MACOSX ]; then + sed -i .backup -e "s/^\(.*mac-snapshot.*\)\(OpenSCAD-.*\.dmg\)\(.*\)\(OpenSCAD-.*dmg\)\(.*$\)/\\1$file1\\3$file1\\5/" $indexfile + elif [ $OS == LINXWIN ]; then + file2=$2 + sed -i .backup -e "s/^\(.*win-snapshot-zip.*\)\(OpenSCAD-.*\.zip\)\(.*\)\(OpenSCAD-.*zip\)\(.*$\)/\\1$file1\\3$file1\\5/" $indexfile + sed -i .backup -e "s/^\(.*win-snapshot-exe.*\)\(OpenSCAD-.*-Installer\.exe\)\(.*\)\(OpenSCAD-.*-Installer.exe\)\(.*$\)/\\1$file2\\3$file2\\5/" $indexfile + fi echo "Web page updated. Remember to commit and push openscad.github.com" else echo "Web page not found at $indexfile" -- cgit v0.10.1 From b64de29a302fa09f4e9409f57d344c602566e442 Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Sat, 22 Oct 2011 14:07:14 -0700 Subject: fix mingw-cross-env location diff --git a/openscad.pro b/openscad.pro index 361525a..ed65a03 100644 --- a/openscad.pro +++ b/openscad.pro @@ -40,7 +40,7 @@ DEFINES += OPENSCAD_VERSION=$$VERSION OPENSCAD_YEAR=$$VERSION_YEAR OPENSCAD_MONT win32:DEFINES += _USE_MATH_DEFINES NOMINMAX _CRT_SECURE_NO_WARNINGS YY_NO_UNISTD_H CONFIG(mingw-cross-env) { - LIBS += mingw-prefix/lib/libglew32s.a mingw-prefix/lib/libglut.a mingw-prefix/lib/libopengl32.a mingw-prefix/lib/libGLEW.a mingw-prefix/lib/libglaux.a mingw-prefix/lib/libglu32.a mingw-prefix/lib/libopencsg.a mingw-prefix/lib/libmpfr.a mingw-prefix/lib/libCGAL.a + LIBS += mingw-cross-env/lib/libglew32s.a mingw-cross-env/lib/libglut.a mingw-cross-env/lib/libopengl32.a mingw-cross-env/lib/libGLEW.a mingw-cross-env/lib/libglaux.a mingw-cross-env/lib/libglu32.a mingw-cross-env/lib/libopencsg.a mingw-cross-env/lib/libmpfr.a mingw-cross-env/lib/libCGAL.a QMAKE_CXXFLAGS += -fpermissive } else { -- cgit v0.10.1 From e29ba42d591a6bf24f38fecc4409af1e597732db Mon Sep 17 00:00:00 2001 From: Brad Pitcher Date: Tue, 1 Nov 2011 11:47:37 -0700 Subject: bring inline with master diff --git a/cgal.pri b/cgal.pri index 96cd2ba..1d9ef22 100644 --- a/cgal.pri +++ b/cgal.pri @@ -1,6 +1,5 @@ cgal { DEFINES += ENABLE_CGAL - CONFIG(mingw-cross-env):DEFINES += BOOST_STATIC BOOST_THREAD_USE_LIB Boost_USE_STATIC_LIBS isEmpty(DEPLOYDIR) { # Optionally specify location of CGAL using the diff --git a/src/CSGTermEvaluator.h b/src/CSGTermEvaluator.h index 9d1fabe..3a8122b 100644 --- a/src/CSGTermEvaluator.h +++ b/src/CSGTermEvaluator.h @@ -7,10 +7,6 @@ #include #include "visitor.h" -#if defined __WIN32__ && ! defined _MSC_VER -#include -#endif - class CSGTermEvaluator : public Visitor { public: diff --git a/src/dxfdata.h b/src/dxfdata.h index 17da1b9..7eea6a9 100644 --- a/src/dxfdata.h +++ b/src/dxfdata.h @@ -1,8 +1,5 @@ #ifndef DXFDATA_H_ #define DXFDATA_H_ -#ifndef EIGEN_DONT_ALIGN -#define EIGEN_DONT_ALIGN -#endif #include "linalg.h" #include diff --git a/src/linalg.h b/src/linalg.h index 744e810..e20d8d8 100644 --- a/src/linalg.h +++ b/src/linalg.h @@ -1,8 +1,6 @@ #ifndef LINALG_H_ #define LINALG_H_ -#ifndef EIGEN_DONT_ALIGN -#define EIGEN_DONT_ALIGN -#endif + #include #include #include -- cgit v0.10.1