EdizonTN

Untitled

Mar 14th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. // ******************************************************************************************************
  2. // Filename: build_defs.h
  3. // Version:
  4. // Created on: 15.4.2015
  5. // Author: JA
  6. // Desc:
  7. // ******************************************************************************************************
  8.  
  9. #ifndef BUILD_DEFS_H_
  10. #define BUILD_DEFS_H_
  11.  
  12.  
  13. // Example of __DATE__ string: "Jul 27 2012"
  14. // Example of __TIME__ string: "21:06:19"
  15.  
  16. #define COMPUTE_BUILD_YEAR \
  17. ( \
  18. (__DATE__[ 7] - '0') * 1000 + \
  19. (__DATE__[ 8] - '0') * 100 + \
  20. (__DATE__[ 9] - '0') * 10 + \
  21. (__DATE__[10] - '0') \
  22. )
  23.  
  24.  
  25. #define COMPUTE_BUILD_DAY \
  26. ( \
  27. ((__DATE__[4] >= '0') ? (__DATE__[4] - '0') * 10 : 0) + \
  28. (__DATE__[5] - '0') \
  29. )
  30.  
  31.  
  32. #define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
  33. #define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
  34. #define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
  35. #define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
  36. #define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
  37. #define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
  38. #define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
  39. #define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
  40. #define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
  41. #define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
  42. #define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
  43. #define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')
  44.  
  45.  
  46. #define COMPUTE_BUILD_MONTH \
  47. ( \
  48. (BUILD_MONTH_IS_JAN) ? 1 : \
  49. (BUILD_MONTH_IS_FEB) ? 2 : \
  50. (BUILD_MONTH_IS_MAR) ? 3 : \
  51. (BUILD_MONTH_IS_APR) ? 4 : \
  52. (BUILD_MONTH_IS_MAY) ? 5 : \
  53. (BUILD_MONTH_IS_JUN) ? 6 : \
  54. (BUILD_MONTH_IS_JUL) ? 7 : \
  55. (BUILD_MONTH_IS_AUG) ? 8 : \
  56. (BUILD_MONTH_IS_SEP) ? 9 : \
  57. (BUILD_MONTH_IS_OCT) ? 10 : \
  58. (BUILD_MONTH_IS_NOV) ? 11 : \
  59. (BUILD_MONTH_IS_DEC) ? 12 : \
  60. /* error default */ 99 \
  61. )
  62.  
  63. #define COMPUTE_BUILD_HOUR ((__TIME__[0] - '0') * 10 + __TIME__[1] - '0')
  64. #define COMPUTE_BUILD_MIN ((__TIME__[3] - '0') * 10 + __TIME__[4] - '0')
  65. #define COMPUTE_BUILD_SEC ((__TIME__[6] - '0') * 10 + __TIME__[7] - '0')
  66.  
  67.  
  68. #define BUILD_DATE_IS_BAD (__DATE__[0] == '?')
  69.  
  70. #define BUILD_YEAR ((BUILD_DATE_IS_BAD) ? 99 : COMPUTE_BUILD_YEAR)
  71. #define BUILD_MONTH ((BUILD_DATE_IS_BAD) ? 99 : COMPUTE_BUILD_MONTH)
  72. #define BUILD_DAY ((BUILD_DATE_IS_BAD) ? 99 : COMPUTE_BUILD_DAY)
  73.  
  74. #define BUILD_TIME_IS_BAD (__TIME__[0] == '?')
  75.  
  76. #define BUILD_HOUR ((BUILD_TIME_IS_BAD) ? 99 : COMPUTE_BUILD_HOUR)
  77. #define BUILD_MIN ((BUILD_TIME_IS_BAD) ? 99 : COMPUTE_BUILD_MIN)
  78. #define BUILD_SEC ((BUILD_TIME_IS_BAD) ? 99 : COMPUTE_BUILD_SEC)
  79.  
  80. #define BUILD_DATE STR(BUILD_YEAR) "." STR(BUILD_MONTH) "." STR(BUILD_DAY)
  81. #define BUILD_TIME STR(BUILD_HOUR) "." STR(BUILD_MIN) "." STR(BUILD_SEC)
  82.  
  83. #endif // BUILD_DEFS_H_
Advertisement
Add Comment
Please, Sign In to add comment