summaryrefslogtreecommitdiff
path: root/openscad.pro
diff options
context:
space:
mode:
Diffstat (limited to 'openscad.pro')
-rw-r--r--openscad.pro107
1 files changed, 98 insertions, 9 deletions
diff --git a/openscad.pro b/openscad.pro
index 3a41800..fbe0fa7 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -8,17 +8,91 @@
}
}
+# for debugging link problems (use nmake -f Makefile.Release > log.txt)
win32 {
- isEmpty(VERSION) VERSION = $$system(date /t)
-} else {
- isEmpty(VERSION) VERSION = $$system(date "+%Y.%m.%d")
+ # QMAKE_LFLAGS += -VERBOSE
+}
+
+# get VERSION from system date
+
+isEmpty(VERSION) {
+ win32-msvc*: {
+ #
+ # Windows XP date command only has one argument, /t
+ # and it can print the date in various localized formats.
+ # This code will detect MM/DD/YYYY, YYYY/MM/DD, and DD/MM/YYYY
+ #
+ SYSDATE = $$system(date /t)
+ SYSDATE = $$replace(SYSDATE,"/",".")
+ SYSDATE ~= s/[A-Za-z]*// # remove name of day
+ DATE_SPLIT=$$split(SYSDATE, ".")
+ DATE_X=$$member(DATE_SPLIT, 0)
+ DATE_Y=$$member(DATE_SPLIT, 1)
+ DATE_Z=$$member(DATE_SPLIT, 2)
+ TEST1=$$find(DATE_X, [0-9]{4} )
+ TEST2=$$find(DATE_Z, [0-9]{4} )
+
+ QDATE = $$_DATE_
+ QDATE_SPLIT = $$split(QDATE)
+ QDAY = $$member(QDATE_SPLIT,2)
+
+ !isEmpty(TEST1) {
+ contains( QDAY, $$DATE_Z ) {
+ # message("Assuming YYYY/MM/DD format")
+ VERSION_YEAR = $$DATE_X
+ VERSION_MONTH = $$DATE_Y
+ VERSION_DAY = $$DATE_Z
+ }
+ } else {
+ !isEmpty(TEST2) {
+ contains( DATE_X, $$QDAY ) {
+ # message("Assuming DD/MM/YYYY format" $$DATE_X $$DATE_Y $$DATE_Z )
+ VERSION_DAY = $$DATE_X
+ VERSION_MONTH = $$DATE_Y
+ VERSION_YEAR = $$DATE_Z
+ } else {
+ # message("Assuming MM/DD/YYYY format" $$DATE_X $$DATE_Y $$DATE_Z )
+ VERSION_MONTH = $$DATE_X
+ VERSION_DAY = $$DATE_Y
+ VERSION_YEAR = $$DATE_Z
+ }
+ } else {
+ # test1 and test2 both empty
+ error("Couldn't parse Windows date. please run 'qmake VERSION=YYYY.MM.DD' with todays date")
+ }
+ } # isEmpty(TEST1)
+ VERSION = $$VERSION_YEAR"."$$VERSION_MONTH"."$$VERSION_DAY
+ # message("YMD Version:" $$VERSION)
+ } else {
+ # Unix/Mac
+ VERSION = $$system(date "+%Y.%m.%d")
+ VERSION_SPLIT=$$split(VERSION, ".")
+ VERSION_YEAR=$$member(VERSION_SPLIT, 0)
+ VERSION_MONTH=$$member(VERSION_SPLIT, 1)
+ VERSION_DAY=$$member(VERSION_SPLIT, 2)
+ }
+}
+
+# cross compilation unix->win32
+
+CONFIG(mingw-cross-env) {
+ LIBS += mingw-cross-env/lib/libglew32s.a
+ LIBS += mingw-cross-env/lib/libglut.a
+ LIBS += mingw-cross-env/lib/libopengl32.a
+ LIBS += mingw-cross-env/lib/libGLEW.a
+ LIBS += mingw-cross-env/lib/libglaux.a
+ LIBS += mingw-cross-env/lib/libglu32.a
+ LIBS += mingw-cross-env/lib/libopencsg.a
+ LIBS += mingw-cross-env/lib/libmpfr.a
+ LIBS += mingw-cross-env/lib/libCGAL.a
+ QMAKE_CXXFLAGS += -fpermissive
}
-VERSION_SPLIT=$$split(VERSION, ".")
-VERSION_YEAR=$$member(VERSION_SPLIT, 0)
-VERSION_MONTH=$$member(VERSION_SPLIT, 1)
-VERSION_DAY=$$member(VERSION_SPLIT, 2)
#configure lex / yacc
+unix:freebsd-g++ {
+ QMAKE_LEX = /usr/local/bin/flex
+ QMAKE_YACC = /usr/local/bin/bison
+}
win32 {
include(flex.pri)
include(bison.pri)
@@ -39,9 +113,24 @@ 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
+# disable MSVC warnings that are of very low importance
+win32:*msvc* {
+ # disable warning about too long decorated names
+ QMAKE_CXXFLAGS += -wd4503
+ # CGAL casting int to bool
+ QMAKE_CXXFLAGS += -wd4800
+ # CGAL's unreferenced formal parameters
+ QMAKE_CXXFLAGS += -wd4100
+ # lexer uses strdup() & other POSIX stuff
+ QMAKE_CXXFLAGS += -D_CRT_NONSTDC_NO_DEPRECATE
+}
+# disable Eigen SIMD optimizations for non-Mac OSX
+!macx {
+ !freebsd-g++ {
+ QMAKE_CXXFLAGS += -DEIGEN_DONT_ALIGN
+ }
+}
TEMPLATE = app
RESOURCES = openscad.qrc
contact: Jan Huwald // Impressum