CMakeVersionCompute.cmake 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Load version number components.
  2. include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake)
  3. # Releases define a small patch level.
  4. if("${CMake_VERSION_PATCH}" VERSION_LESS 20000000)
  5. set(CMake_VERSION_IS_DIRTY 0)
  6. set(CMake_VERSION_IS_RELEASE 1)
  7. set(CMake_VERSION_SOURCE "")
  8. else()
  9. set(CMake_VERSION_IS_DIRTY 0) # may be set to 1 by CMakeVersionSource
  10. set(CMake_VERSION_IS_RELEASE 0)
  11. include(${CMake_SOURCE_DIR}/Source/CMakeVersionSource.cmake)
  12. endif()
  13. # Compute the full version string.
  14. set(CMake_VERSION ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH})
  15. if(CMake_VERSION_SOURCE)
  16. set(CMake_VERSION_SUFFIX "${CMake_VERSION_SOURCE}")
  17. elseif(DEFINED CMake_VERSION_RC)
  18. set(CMake_VERSION_SUFFIX "rc${CMake_VERSION_RC}")
  19. else()
  20. set(CMake_VERSION_SUFFIX "")
  21. endif()
  22. if(CMake_VERSION_SUFFIX)
  23. set(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SUFFIX})
  24. endif()
  25. if(CMake_VERSION_IS_DIRTY)
  26. set(CMake_VERSION ${CMake_VERSION}-dirty)
  27. endif()
  28. # Compute the binary version that appears in the RC file. Version
  29. # components in the RC file are 16-bit integers so we may have to
  30. # split the patch component.
  31. if(CMake_VERSION_PATCH MATCHES "^([0-9]+)([0-9][0-9][0-9][0-9])$")
  32. set(CMake_RCVERSION_YEAR "${CMAKE_MATCH_1}")
  33. set(CMake_RCVERSION_MONTH_DAY "${CMAKE_MATCH_2}")
  34. string(REGEX REPLACE "^0+" "" CMake_RCVERSION_MONTH_DAY "${CMake_RCVERSION_MONTH_DAY}")
  35. set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_RCVERSION_YEAR},${CMake_RCVERSION_MONTH_DAY})
  36. unset(CMake_RCVERSION_MONTH_DAY)
  37. unset(CMake_RCVERSION_YEAR)
  38. else()
  39. set(CMake_RCVERSION ${CMake_VERSION_MAJOR},${CMake_VERSION_MINOR},${CMake_VERSION_PATCH})
  40. endif()
  41. set(CMake_RCVERSION_STR ${CMake_VERSION})