CMakeVersionSource.cmake 949 B

123456789101112131415161718192021222324252627282930
  1. # Try to identify the current development source version.
  2. set(CMake_VERSION_SOURCE "")
  3. if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
  4. find_program(GIT_EXECUTABLE NAMES git git.cmd)
  5. mark_as_advanced(GIT_EXECUTABLE)
  6. if(GIT_EXECUTABLE)
  7. execute_process(
  8. COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD
  9. OUTPUT_VARIABLE head
  10. OUTPUT_STRIP_TRAILING_WHITESPACE
  11. WORKING_DIRECTORY ${CMake_SOURCE_DIR}
  12. )
  13. if(head)
  14. set(CMake_VERSION_SOURCE "g${head}")
  15. execute_process(
  16. COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
  17. WORKING_DIRECTORY ${CMake_SOURCE_DIR}
  18. )
  19. execute_process(
  20. COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
  21. OUTPUT_VARIABLE dirty
  22. OUTPUT_STRIP_TRAILING_WHITESPACE
  23. WORKING_DIRECTORY ${CMake_SOURCE_DIR}
  24. )
  25. if(dirty)
  26. set(CMake_VERSION_IS_DIRTY 1)
  27. endif()
  28. endif()
  29. endif()
  30. endif()