diff options
Diffstat (limited to 'openscad.pro')
-rw-r--r-- | openscad.pro | 107 |
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 |