GetSvnVersion.cmake 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #
  2. # Find svnversion
  3. #
  4. function(get_svn_version)
  5. message( STATUS "Detecting svnversion" )
  6. find_program( SVNVERSION_EXECUTABLE svnversion )
  7. mark_as_advanced( SVNVERSION_EXECUTABLE )
  8. if( SVNVERSION_EXECUTABLE )
  9. message( STATUS "Found svnversion: ${SVNVERSION_EXECUTABLE}" )
  10. endif()
  11. message( STATUS "Detecting svnversion - done" )
  12. #
  13. # Find Subversion
  14. #
  15. message( STATUS "Detecting Subversion" )
  16. find_package( Subversion )
  17. message( STATUS "Detecting Subversion - done" )
  18. #
  19. # SVNVERSION
  20. #
  21. if( SVNVERSION_EXECUTABLE )
  22. message( STATUS "Getting svn version" )
  23. execute_process( COMMAND ${SVNVERSION_EXECUTABLE} ${PROJECT_SOURCE_DIR}
  24. OUTPUT_VARIABLE SVNVERSION
  25. OUTPUT_STRIP_TRAILING_WHITESPACE )
  26. if( SVNVERSION MATCHES "^Unversioned" )
  27. set( SVNVERSION )
  28. endif()
  29. string( REGEX REPLACE "[^1234567890MSexported]" "_" SVNVERSION "${SVNVERSION}" )
  30. message( STATUS "Found SVNversion: ${SVNVERSION}" )
  31. message( STATUS "Getting svn version - done" )
  32. endif()
  33. if( Subversion_FOUND AND SVNVERSION )
  34. message( STATUS "Getting svn branch" )
  35. Subversion_WC_INFO( ${PROJECT_SOURCE_DIR} rAthena )
  36. if( rAthena_WC_URL )
  37. string( REGEX MATCH "[^/]+$" BRANCH ${rAthena_WC_URL} )
  38. set( SVNVERSION "${BRANCH}-${SVNVERSION}" )
  39. message( STATUS "Found branch: ${BRANCH}" )
  40. endif()
  41. message( STATUS "Getting svn branch - done" )
  42. endif()
  43. set(SVNVERSION ${SVNVERSION} PARENT_SCOPE)
  44. endfunction()