mirror of https://github.com/vitalif/openscad
check versions of libraries at compile time - warn users. fix FIXME in openscad.pro
parent
b960247d28
commit
018211a863
27
openscad.pro
27
openscad.pro
|
@ -108,6 +108,11 @@ CONFIG(mingw-cross-env) {
|
|||
include(mingw-cross-env.pri)
|
||||
}
|
||||
|
||||
CONFIG(skip-version-check) {
|
||||
# force the use of outdated libraries
|
||||
DEFINES += OPENSCAD_SKIP_VERSION_CHECK
|
||||
}
|
||||
|
||||
# Application configuration
|
||||
macx:CONFIG += mdi
|
||||
CONFIG += cgal
|
||||
|
@ -122,14 +127,7 @@ mdi {
|
|||
DEFINES += ENABLE_MDI
|
||||
}
|
||||
|
||||
# FIXME: This can be made default by now
|
||||
CONFIG += progresswidget
|
||||
progresswidget {
|
||||
DEFINES += USE_PROGRESSWIDGET
|
||||
FORMS += src/ProgressWidget.ui
|
||||
HEADERS += src/ProgressWidget.h
|
||||
SOURCES += src/ProgressWidget.cc
|
||||
}
|
||||
DEFINES += USE_PROGRESSWIDGET
|
||||
|
||||
include(common.pri)
|
||||
|
||||
|
@ -145,9 +143,12 @@ RESOURCES = openscad.qrc
|
|||
|
||||
FORMS += src/MainWindow.ui \
|
||||
src/Preferences.ui \
|
||||
src/OpenCSGWarningDialog.ui
|
||||
src/OpenCSGWarningDialog.ui \
|
||||
src/ProgressWidget.ui
|
||||
|
||||
HEADERS += src/parsersettings.h \
|
||||
HEADERS += src/version_check.h \
|
||||
src/ProgressWidget.h \
|
||||
src/parsersettings.h \
|
||||
src/renderer.h \
|
||||
src/rendersettings.h \
|
||||
src/ThrownTogetherRenderer.h \
|
||||
|
@ -203,8 +204,10 @@ HEADERS += src/parsersettings.h \
|
|||
src/system-gl.h \
|
||||
src/stl-utils.h
|
||||
|
||||
SOURCES += src/mathc99.cc \
|
||||
src/linalg.cc \
|
||||
SOURCES += src/version_check.cc \
|
||||
src/ProgressWidget.cc \
|
||||
src/mathc99.cc \
|
||||
src/linalg.cc \
|
||||
src/handle_dep.cc \
|
||||
src/value.cc \
|
||||
src/expr.cc \
|
||||
|
|
|
@ -11,11 +11,6 @@ using boost::intmax_t;
|
|||
using boost::uintmax_t;
|
||||
#endif
|
||||
|
||||
#include <CGAL/version.h>
|
||||
#if CGAL_VERSION_NR < 1030601000
|
||||
#error CGAL >= 3.6 is required!
|
||||
#endif
|
||||
|
||||
// NDEBUG must be disabled when including CGAL headers, otherwise CGAL assertions
|
||||
// will not be thrown, causing OpenSCAD's CGAL error checking to fail.
|
||||
// To be on the safe side, this has to be done when including any CGAL header file.
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
#include "version_check.h"
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
// version_check.h copyright 2012 don bright. released under the GPL 2, or
|
||||
// later, as described in the file named 'COPYING' in OpenSCAD's project root.
|
||||
|
||||
/* This file will check versions of libraries at compile time. If they
|
||||
are too old, the user will be warned. If the user wishes to force
|
||||
compilation, they can run
|
||||
|
||||
qmake CONFIG=skip-version-check
|
||||
|
||||
Otherwise they will be guided to README.md and an -build-dependencies script.
|
||||
|
||||
The extensive #else #endif is to ensure only a single error is printed at
|
||||
a time, to avoid confusion.
|
||||
*/
|
||||
|
||||
#ifndef OPENSCAD_SKIP_VERSION_CHECK
|
||||
|
||||
|
||||
#include <gmp.h>
|
||||
// set minimum numbers here.
|
||||
#define GMPMAJOR 5
|
||||
#define GMPMINOR 0
|
||||
#define GMPPATCH 0
|
||||
#define SYS_GMP_VER (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL * 1)
|
||||
#if SYS_GMP_VER < GMPMAJOR * 10000 + GMPMINOR * 100 + GMPPATCH * 1
|
||||
#error GNU GMP library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
|
||||
#include <mpfr.h>
|
||||
#if MPFR_VERSION < MPFR_VERSION_NUM( 3,0,0 )
|
||||
#error GNU MPFR library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
|
||||
#include <Eigen/Core>
|
||||
#if not EIGEN_VERSION_AT_LEAST( 2,0,13 )
|
||||
#error eigen2 library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
|
||||
#include <boost/version.hpp>
|
||||
// boost 1.3.5 = 103500
|
||||
#if BOOST_VERSION < 103500
|
||||
#error boost library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
|
||||
#ifdef ENABLE_CGAL
|
||||
#include <CGAL/version.h>
|
||||
|
||||
#if CGAL_VERSION_NR < 1030601000
|
||||
#error CGAL library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
#if CGAL_VERSION_NR < 1040001000
|
||||
#warning "======================="
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning CGAL library version is old, risking buggy behavior. Please see README.md. Compiling anyway.
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning "."
|
||||
#warning "======================="
|
||||
#endif // CGAL_VERSION_NR < 10400010000
|
||||
#endif //ENABLE_CGAL
|
||||
|
||||
#ifdef ENABLE_OPENCSG
|
||||
#include <GL/glew.h>
|
||||
// kludge - GLEW doesnt have compiler-accessible version numbering
|
||||
#ifndef GLEW_ARB_occlusion_query2
|
||||
#error GLEW library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
|
||||
|
||||
#include <opencsg.h>
|
||||
// 1.3.2 -> 0x0132
|
||||
#if OPENCSG_VERSION < 0x0132
|
||||
#error OPENCSG library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#else
|
||||
#endif // ENABLE_OPENCSG
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
#if QT_VERSION < 0x040603
|
||||
#error QT library missing or version too old. See README.md. To force compile, run qmake CONFIG=skip-version-check
|
||||
#endif // QT
|
||||
|
||||
|
||||
#ifdef ENABLE_OPENCSG
|
||||
#endif // OpenCSG
|
||||
#endif // GLEW
|
||||
#endif // ENABLE_OPENCSG
|
||||
|
||||
#ifdef ENABLE_CGAL
|
||||
#endif // CGAL error
|
||||
#endif // ENABLE_CGAL
|
||||
|
||||
#endif // Boost
|
||||
#endif // Eigen2
|
||||
#endif // MPFR
|
||||
#endif // GMP
|
||||
|
||||
#endif // OPENSCAD_SKIP_VERSION_CHECK
|
||||
|
Loading…
Reference in New Issue