+//\r
+// Convenience macros to obtain a build date\r
+//\r
+// These macros should work for any compiler that follows ISO/IEC 9899,\r
+// in which case __DATE__ is defined as a "Mmm dd yyyy" 11 chars string,\r
+// but add an explicit filter for compilers that have been validated.\r
+//\r
+#if (defined(__GNUC__) || defined(_MSC_VER) || defined(__clang__))\r
+#define TIME_BUILD_YEAR (__DATE__[7] == '?' ? 1900 \\r
+ : (((__DATE__[7] - '0') * 1000 ) \\r
+ + (__DATE__[8] - '0') * 100 \\r
+ + (__DATE__[9] - '0') * 10 \\r
+ + __DATE__[10] - '0'))\r
+#define TIME_BUILD_MONTH ( __DATE__ [2] == '?' ? 1 \\r
+ : __DATE__ [2] == 'n' ? ( \\r
+ __DATE__ [1] == 'a' ? 1 : 6) \\r
+ : __DATE__ [2] == 'b' ? 2 \\r
+ : __DATE__ [2] == 'r' ? ( \\r
+ __DATE__ [0] == 'M' ? 3 : 4) \\r
+ : __DATE__ [2] == 'y' ? 5 \\r
+ : __DATE__ [2] == 'l' ? 7 \\r
+ : __DATE__ [2] == 'g' ? 8 \\r
+ : __DATE__ [2] == 'p' ? 9 \\r
+ : __DATE__ [2] == 't' ? 10 \\r
+ : __DATE__ [2] == 'v' ? 11 \\r
+ : 12)\r
+#define TIME_BUILD_DAY ( __DATE__[4] == '?' ? 1 \\r
+ : ((__DATE__[4] == ' ' ? 0 : \\r
+ ((__DATE__[4] - '0') * 10)) \\r
+ + __DATE__[5] - '0'))\r
+#endif\r
+\r