Kiibohd Controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

buildinfo.cmake 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ###| CMAKE Kiibohd Controller Source Configurator |###
  2. #
  3. # Written by Jacob Alexander in 2011-2016 for the Kiibohd Controller
  4. #
  5. # Released into the Public Domain
  6. #
  7. ###
  8. find_package ( Git REQUIRED )
  9. ###
  10. # Generate Build Defines
  11. #
  12. #| Manufacturer name
  13. set ( MANUFACTURER "Kiibohd" )
  14. #| Modified
  15. #| Takes a bit of work to extract the "M " using CMake, and not using it if there are no modifications
  16. execute_process ( COMMAND ${GIT_EXECUTABLE} status -s -uno --porcelain
  17. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  18. OUTPUT_VARIABLE Git_Modified_INFO
  19. ERROR_QUIET
  20. OUTPUT_STRIP_TRAILING_WHITESPACE
  21. )
  22. string ( LENGTH "${Git_Modified_INFO}" Git_Modified_LENGTH )
  23. set ( Git_Modified_Status "Clean" )
  24. if ( ${Git_Modified_LENGTH} GREATER 2 )
  25. string ( SUBSTRING "${Git_Modified_INFO}" 1 2 Git_Modified_Flag_INFO )
  26. set ( Git_Modified_Status "Dirty" )
  27. endif ()
  28. #| List of modified files
  29. execute_process ( COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
  30. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  31. OUTPUT_VARIABLE Git_Modified_Files
  32. ERROR_QUIET
  33. OUTPUT_STRIP_TRAILING_WHITESPACE
  34. )
  35. string ( REGEX REPLACE "\n" "\\\\r\\\\n\\\\t" Git_Modified_Files "${Git_Modified_Files}" )
  36. set ( Git_Modified_Files "\\r\\n\\t${Git_Modified_Files}" )
  37. #| Branch
  38. execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
  39. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  40. OUTPUT_VARIABLE Git_Branch_INFO
  41. ERROR_QUIET
  42. OUTPUT_STRIP_TRAILING_WHITESPACE
  43. )
  44. #| Date
  45. execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format=%ci
  46. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  47. OUTPUT_VARIABLE Git_Date_INFO
  48. ERROR_QUIET
  49. OUTPUT_STRIP_TRAILING_WHITESPACE
  50. )
  51. #| Commit Author and Email
  52. execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format="%cn <%ce>"
  53. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  54. OUTPUT_VARIABLE Git_Commit_Author
  55. ERROR_QUIET
  56. OUTPUT_STRIP_TRAILING_WHITESPACE
  57. )
  58. #| Commit Revision
  59. execute_process ( COMMAND ${GIT_EXECUTABLE} show -s --format=%H
  60. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  61. OUTPUT_VARIABLE Git_Commit_Revision
  62. ERROR_QUIET
  63. OUTPUT_STRIP_TRAILING_WHITESPACE
  64. )
  65. #| Commit Number (on branch)
  66. execute_process ( COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
  67. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  68. OUTPUT_VARIABLE Git_Commit_Number
  69. ERROR_QUIET
  70. OUTPUT_STRIP_TRAILING_WHITESPACE
  71. )
  72. #| Origin URL
  73. execute_process ( COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
  74. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  75. OUTPUT_VARIABLE Git_Origin_URL
  76. ERROR_QUIET
  77. OUTPUT_STRIP_TRAILING_WHITESPACE
  78. )
  79. #| Build Date
  80. execute_process ( COMMAND "date" "+%Y-%m-%d %T %z"
  81. OUTPUT_VARIABLE Build_Date
  82. ERROR_QUIET
  83. OUTPUT_STRIP_TRAILING_WHITESPACE
  84. )
  85. #| Last Commit Date
  86. set ( GitLastCommitDate "${Git_Modified_Status} ${Git_Branch_INFO} - ${Git_Date_INFO}" )