summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openscad.pro66
1 files changed, 57 insertions, 9 deletions
diff --git a/openscad.pro b/openscad.pro
index 027576d..f5c5449 100644
--- a/openscad.pro
+++ b/openscad.pro
@@ -13,16 +13,64 @@ win32 {
# QMAKE_LFLAGS += -VERBOSE
}
-win32 {
- isEmpty(VERSION) VERSION = $$system(date /t)
- # isEmpty(VERSION) VERSION = "2011.10.15" # for XP, set version manually
-} else {
- isEmpty(VERSION) VERSION = $$system(date "+%Y.%m.%d")
+isEmpty(VERSION) {
+ win32 {
+ #
+ # 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)
+ message("Reading date from Windows date.exe... " $$SYSDATE)
+ 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_
+ message("Reading date from QMAKE ..." $$QDATE)
+ 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")
+ }
+ }
+ message("YMD version:" $$VERSION_YEAR $$VERSION_MONTH $$VERSION_DAY)
+ } 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)
+ }
}
-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++ {
contact: Jan Huwald // Impressum