1
0

build-info.cmake 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. set(BUILD_NUMBER 0)
  2. set(BUILD_COMMIT "unknown")
  3. set(BUILD_COMPILER "unknown")
  4. set(BUILD_TARGET "unknown")
  5. # Look for git
  6. find_package(Git)
  7. if(NOT Git_FOUND)
  8. find_program(GIT_EXECUTABLE NAMES git git.exe)
  9. if(GIT_EXECUTABLE)
  10. set(Git_FOUND TRUE)
  11. message(STATUS "Found Git: ${GIT_EXECUTABLE}")
  12. else()
  13. message(WARNING "Git not found. Build info will not be accurate.")
  14. endif()
  15. endif()
  16. # Get the commit count and hash
  17. if(Git_FOUND)
  18. execute_process(
  19. COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
  20. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  21. OUTPUT_VARIABLE HEAD
  22. OUTPUT_STRIP_TRAILING_WHITESPACE
  23. RESULT_VARIABLE RES
  24. )
  25. if (RES EQUAL 0)
  26. set(BUILD_COMMIT ${HEAD})
  27. endif()
  28. execute_process(
  29. COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
  30. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  31. OUTPUT_VARIABLE COUNT
  32. OUTPUT_STRIP_TRAILING_WHITESPACE
  33. RESULT_VARIABLE RES
  34. )
  35. if (RES EQUAL 0)
  36. set(BUILD_NUMBER ${COUNT})
  37. endif()
  38. endif()
  39. if(MSVC)
  40. set(BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
  41. set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
  42. else()
  43. execute_process(
  44. COMMAND sh -c "$@ --version | head -1" _ ${CMAKE_C_COMPILER}
  45. OUTPUT_VARIABLE OUT
  46. OUTPUT_STRIP_TRAILING_WHITESPACE
  47. )
  48. set(BUILD_COMPILER ${OUT})
  49. execute_process(
  50. COMMAND ${CMAKE_C_COMPILER} -dumpmachine
  51. OUTPUT_VARIABLE OUT
  52. OUTPUT_STRIP_TRAILING_WHITESPACE
  53. )
  54. set(BUILD_TARGET ${OUT})
  55. endif()