From a1c698f422fceeadcf50e2ad456d5e43a01c8feb Mon Sep 17 00:00:00 2001 From: don bright Date: Mon, 10 Oct 2011 18:01:51 -0500 Subject: enable build of cgalpngtest under windowsXP diff --git a/cgal.pri b/cgal.pri index 49e44de..36afa48 100644 --- a/cgal.pri +++ b/cgal.pri @@ -17,6 +17,7 @@ cgal { LIBS += $$CGAL_DIR/auxiliary/gmp/lib/libmpfr-4.lib -lCGAL-vc90-mt-s } else { LIBS += -lgmp -lmpfr -lCGAL + QMAKE_CXXFLAGS += -frounding-math # visual C++ doesn't have this } - QMAKE_CXXFLAGS += -frounding-math + } diff --git a/openscad.pro b/openscad.pro index 3a41800..35f65ab 100644 --- a/openscad.pro +++ b/openscad.pro @@ -42,6 +42,11 @@ win32:DEFINES += _USE_MATH_DEFINES NOMINMAX _CRT_SECURE_NO_WARNINGS YY_NO_UNISTD #disable warning about too long decorated names win32:QMAKE_CXXFLAGS += -wd4503 +#disable warning about casting int to bool +win32:QMAKE_CXXFLAGS += -wd4800 + +#disable warning about CGAL's unreferenced formal parameters +win32:QMAKE_CXXFLAGS += -wd4100 TEMPLATE = app RESOURCES = openscad.qrc diff --git a/src/dxfdata.h b/src/dxfdata.h index d8dc3dd..04bcdd0 100644 --- a/src/dxfdata.h +++ b/src/dxfdata.h @@ -1,10 +1,14 @@ #ifndef DXFDATA_H_ #define DXFDATA_H_ +// workaround Eigen SIMD alignment problems #ifndef __APPLE__ #define EIGEN_DONT_VECTORIZE 1 #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT 1 #endif +#ifdef _MSC_VER +#define EIGEN_DONT_ALIGN +#endif #include #include @@ -35,7 +39,11 @@ public: } }; +#ifdef _MSC_VER + std::vector points; +#else std::vector > points; +#endif std::vector paths; std::vector dims; diff --git a/src/func.cc b/src/func.cc index b011a27..75e90df 100644 --- a/src/func.cc +++ b/src/func.cc @@ -34,6 +34,7 @@ #include #include "stl-utils.h" #include +#include "openscad.h" //M_PI AbstractFunction::~AbstractFunction() { diff --git a/src/linalg.h b/src/linalg.h index 02fa17f..b1e1409 100644 --- a/src/linalg.h +++ b/src/linalg.h @@ -1,10 +1,14 @@ #ifndef LINALG_H_ #define LINALG_H_ +// workaround Eigen SIMD alignment problems #ifndef __APPLE__ #define EIGEN_DONT_VECTORIZE 1 #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT 1 #endif +#ifdef _MSC_VER +#define EIGEN_DONT_ALIGN +#endif #include #include diff --git a/src/linearextrude.cc b/src/linearextrude.cc index 5c3b684..9c3557b 100644 --- a/src/linearextrude.cc +++ b/src/linearextrude.cc @@ -32,6 +32,7 @@ #include "builtin.h" #include "PolySetEvaluator.h" #include "openscad.h" // get_fragments_from_r() +#include "mathc99.h" #include #include diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9e6640e..d102f6b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -8,6 +8,16 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif() +# Disable some warnings in Windows +if(WIN32) + # too long decorated names + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4503") + # int cast to bool in CGAL + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800") + # unreferenced parameters in CGAL + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4100") +endif() + # # Build test apps # @@ -59,7 +69,7 @@ include_directories(${OPENCSG_INCLUDE_DIR}) # GLEW -if (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "") +if () set(GLEW_DIR "$ENV{MACOSX_DEPLOY_DIR}") endif() find_package(GLEW REQUIRED) @@ -69,7 +79,10 @@ include_directories(${GLEW_INCLUDE_PATH}) find_package(BISON) find_package(FLEX) # The COMPILE_FLAGS and forced C++ compiler is just to be compatible with qmake -FLEX_TARGET(OpenSCADlexer ../src/lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp COMPILE_FLAGS "-Plexer") +if (WIN32) + set(FLEX_UNISTD_FLAG "-DYY_NO_UNISTD_H") +endif() +FLEX_TARGET(OpenSCADlexer ../src/lexer.l ${CMAKE_CURRENT_BINARY_DIR}/lexer.cpp COMPILE_FLAGS "-Plexer ${FLEX_UNISTD_FLAG}") BISON_TARGET(OpenSCADparser ../src/parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser_yacc.c COMPILE_FLAGS "-p parser") ADD_FLEX_BISON_DEPENDENCY(OpenSCADlexer OpenSCADparser) set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/parser_yacc.c PROPERTIES LANGUAGE "CXX") @@ -81,6 +94,7 @@ include_directories(../src) add_definitions(-DOPENSCAD_VERSION=test -DOPENSCAD_YEAR=2011 -DOPENSCAD_MONTH=10) set(COMMON_SOURCES + ../src/mathc99.cc ../src/handle_dep.cc ../src/qhash.cc ../src/export.cc @@ -121,10 +135,12 @@ set(COMMON_SOURCES # # Offscreen OpenGL context source code # -if (NOT $ENV{MACOSX_DEPLOY_DIR} STREQUAL "") +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(OFFSCREEN_CTX_SOURCE "OffscreenContext.mm") -else() +elseif(UNIX) set(OFFSCREEN_CTX_SOURCE "OffscreenContext.cc") +elseif(WIN32) + set(OFFSCREEN_CTX_SOURCE "OffscreenContextWGL.cc") endif() # diff --git a/tests/OffscreenView.cc b/tests/OffscreenView.cc index d188d0d..e34fbce 100644 --- a/tests/OffscreenView.cc +++ b/tests/OffscreenView.cc @@ -186,7 +186,7 @@ void OffscreenView::paintGL() glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - glClearColor(1.0, 1.0, 0.92, 1.0); + glClearColor(1.0f, 1.0f, 0.92f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); diff --git a/tests/OffscreenView.h b/tests/OffscreenView.h index dd52a81..c57f07e 100644 --- a/tests/OffscreenView.h +++ b/tests/OffscreenView.h @@ -1,15 +1,21 @@ #ifndef OFFSCREENVIEW_H_ #define OFFSCREENVIEW_H_ -#ifndef __APPLE__ // Eigen SIMD alignment +// workaround Eigen SIMD alignment problems +#ifndef __APPLE__ #define EIGEN_DONT_VECTORIZE 1 #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT 1 #endif +#ifdef _MSC_VER +#define EIGEN_DONT_ALIGN +#endif #include "OffscreenContext.h" #include #include +#ifndef _MSC_VER #include +#endif class OffscreenView { diff --git a/tests/cgalpngtest.cc b/tests/cgalpngtest.cc index 447df45..fee44e8 100644 --- a/tests/cgalpngtest.cc +++ b/tests/cgalpngtest.cc @@ -23,6 +23,10 @@ * */ +#ifdef _MSC_VER +#define EIGEN_DONT_ALIGN +#endif + #include "myqhash.h" #include "openscad.h" #include "node.h" @@ -47,7 +51,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #include @@ -182,7 +188,7 @@ int main(int argc, char **argv) try { csgInfo.glview = new OffscreenView(512,512); } catch (int error) { - fprintf(stderr,"Can't create OpenGL OffscreenView. exiting.\n"); + fprintf(stderr,"Can't create OpenGL OffscreenView. Code: %i. Exiting.\n", error); exit(1); } @@ -211,19 +217,21 @@ int main(int argc, char **argv) CGALRenderer cgalRenderer(N); - BoundingBox bbox; +/* Eigen::AlignedBox bbox; if (cgalRenderer.polyhedron) { CGAL::Bbox_3 cgalbbox = cgalRenderer.polyhedron->bbox(); bbox = BoundingBox(Vector3d(cgalbbox.xmin(), cgalbbox.ymin(), cgalbbox.zmin()), - Vector3d(cgalbbox.xmax(), cgalbbox.ymax(), cgalbbox.zmax())); + Vector3d(cgalbbox.xmax(), cgalbbox.ymax(), cgalbbox.zmax())); } else if (cgalRenderer.polyset) { bbox = cgalRenderer.polyset->getBoundingBox(); } + Vector3d center = (bbox.min() + bbox.max()) / 2; double radius = (bbox.max() - bbox.min()).norm() / 2; - - +*/ + Vector3d center(0,0,0); + double radius = 5.0; Vector3d cameradir(1, 1, -0.5); Vector3d camerapos = center - radius*2*cameradir; csgInfo.glview->setCamera(camerapos, center); diff --git a/tests/cgaltest.cc b/tests/cgaltest.cc index 8dfb63c..2c83cc8 100644 --- a/tests/cgaltest.cc +++ b/tests/cgaltest.cc @@ -42,7 +42,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #include diff --git a/tests/csgtestcore.cc b/tests/csgtestcore.cc index 2e28bf6..11ff695 100644 --- a/tests/csgtestcore.cc +++ b/tests/csgtestcore.cc @@ -221,7 +221,7 @@ int csgtestcore(int argc, char *argv[], test_type_e test_type) try { csgInfo.glview = new OffscreenView(512,512); } catch (int error) { - fprintf(stderr,"Can't create OpenGL OffscreenView. exiting.\n"); + fprintf(stderr,"Can't create OpenGL OffscreenView. Code: %i. Exiting.\n", error); exit(1); } BoundingBox bbox = csgInfo.root_chain->getBoundingBox(); diff --git a/tests/imageutils.cc b/tests/imageutils.cc index 7358674..e15ba2b 100644 --- a/tests/imageutils.cc +++ b/tests/imageutils.cc @@ -1,11 +1,11 @@ #include "imageutils.h" -#include +#include void flip_image(const unsigned char *src, unsigned char *dst, size_t pixelsize, size_t width, size_t height) { size_t rowBytes = pixelsize * width; for (size_t i = 0 ; i < height ; i++) { - bcopy(src + i * rowBytes, dst + (height - i - 1) * rowBytes, rowBytes); + memmove(dst + (height - i - 1) * rowBytes, src + i * rowBytes, rowBytes); } } -- cgit v0.10.1