#pragma once /** build year as number */ #define COMPUTE_BUILD_YEAR \ ( \ (__DATE__[ 7] - '0') * 1000 + \ (__DATE__[ 8] - '0') * 100 + \ (__DATE__[ 9] - '0') * 10 + \ (__DATE__[10] - '0') \ ) /** build day as number */ #define COMPUTE_BUILD_DAY \ ( \ ((__DATE__[4] >= '0') ? (__DATE__[4] - '0') * 10 : 0) + \ (__DATE__[5] - '0') \ ) /** check if build month is January */ #define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n') /** check if build month is February */ #define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F') /** check if build month is March */ #define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r') /** check if build month is April */ #define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p') /** check if build month is May */ #define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y') /** check if build month is June */ #define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n') /** check if build month is July */ #define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l') /** check if build month is August */ #define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u') /** check if build month is September */ #define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S') /** check if build month is October */ #define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O') /** check if build month is November */ #define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N') /** check if build month is December */ #define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D') /** build month as number */ #define COMPUTE_BUILD_MONTH \ ( \ (BUILD_MONTH_IS_JAN) ? 1 : \ (BUILD_MONTH_IS_FEB) ? 2 : \ (BUILD_MONTH_IS_MAR) ? 3 : \ (BUILD_MONTH_IS_APR) ? 4 : \ (BUILD_MONTH_IS_MAY) ? 5 : \ (BUILD_MONTH_IS_JUN) ? 6 : \ (BUILD_MONTH_IS_JUL) ? 7 : \ (BUILD_MONTH_IS_AUG) ? 8 : \ (BUILD_MONTH_IS_SEP) ? 9 : \ (BUILD_MONTH_IS_OCT) ? 10 : \ (BUILD_MONTH_IS_NOV) ? 11 : \ (BUILD_MONTH_IS_DEC) ? 12 : \ /* error default */ 99 \ ) /** check if build date is unknown */ #define BUILD_DATE_IS_BAD (__DATE__[0] == '?') /** build year as number if known, or 0 if unknown */ #define BUILD_YEAR ((BUILD_DATE_IS_BAD) ? 0 : COMPUTE_BUILD_YEAR) /** build month as number if known, or 0 if unknown */ #define BUILD_MONTH ((BUILD_DATE_IS_BAD) ? 99 : COMPUTE_BUILD_MONTH) /** build day as number if known, or 0 if unknown */ #define BUILD_DAY ((BUILD_DATE_IS_BAD) ? 99 : COMPUTE_BUILD_DAY)