diff options
-rw-r--r-- | openscad.pro | 66 |
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++ { |