1
0

build-info.cmake 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. if (CMAKE_VS_PLATFORM_NAME)
  42. set(BUILD_TARGET ${CMAKE_VS_PLATFORM_NAME})
  43. else()
  44. set(BUILD_TARGET "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
  45. endif()
  46. else()
  47. execute_process(
  48. COMMAND ${CMAKE_C_COMPILER} --version
  49. OUTPUT_VARIABLE OUT
  50. OUTPUT_STRIP_TRAILING_WHITESPACE
  51. )
  52. string(REGEX REPLACE " *\n.*" "" OUT "${OUT}")
  53. set(BUILD_COMPILER ${OUT})
  54. execute_process(
  55. COMMAND ${CMAKE_C_COMPILER} -dumpmachine
  56. OUTPUT_VARIABLE OUT
  57. OUTPUT_STRIP_TRAILING_WHITESPACE
  58. )
  59. set(BUILD_TARGET ${OUT})
  60. endif()