Edit

kc3-lang/libevent/cmake/VersionViaGit.cmake

Branch :

  • Show log

    Commit

  • Author : Mark Ellzey
    Date : 2015-12-20 21:44:04
    Hash : 49a53811
    Message : More cmake updates, lot's of missing definitions

  • cmake/VersionViaGit.cmake
  • # This module defines the following variables utilizing
    # git to determine the parent tag. And if found the macro
    # will attempt to parse them in the github tag fomat
    #
    # Usful for auto-versionin in ou CMakeLists
    #
    #  EVENT_GIT___VERSION_FOUND - Version variables foud
    #  EVENT_GIT___VERSION_MAJOR - Major version.
    #  EVENT_GIT___VERSION_MINOR - Minor version
    #  EVENT_GIT___VERSION_STAGE - Stage version
    #
    # Example usage:
    #
    # event_fuzzy_version_from_git()
    # if (EVENT_GIT___VERSION_FOUND)
    #    message("Libvent major=${EVENT_GIT___VERSION_MAJOR}")
    #    message("        minor=${EVENT_GIT___VERSION_MINOR}")
    #    message("        patch=${EVENT_GIT___VERSION_PATCH}")
    #    message("        stage=${EVENT_GIT___VERSION_STAGE}")
    # endif()
    
    include(FindGit)
    
    macro(event_fuzzy_version_from_git)
    	set(EVENT_GIT___VERSION_FOUND FALSE)
    
    	# set our defaults.
    	set(EVENT_GIT___VERSION_MAJOR 2)
    	set(EVENT_GIT___VERSION_MINOR 1)
    	set(EVENT_GIT___VERSION_PATCH 5)
    	set(EVENT_GIT___VERSION_STAGE "beta")
    
    	find_package(Git)
    
    	if (GIT_FOUND)
    		execute_process(
    			COMMAND
    				${GIT_EXECUTABLE} describe --abbrev=0
    			WORKING_DIRECTORY
    				${PROJECT_SOURCE_DIR}
    			RESULT_VARIABLE
    				GITRET
    			OUTPUT_VARIABLE
    				GITVERSION)
    
    			if (GITRET EQUAL 0)
    				string(REGEX REPLACE "^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)"       "\\1" EVENT_GIT___VERSION_MAJOR ${GITVERSION})
    				string(REGEX REPLACE "^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)"       "\\2" EVENT_GIT___VERSION_MINOR ${GITVERSION})
    				string(REGEX REPLACE "^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-(.*)"       "\\3" EVENT_GIT___VERSION_PATCH ${GITVERSION})
    				string(REGEX REPLACE "^release-([0-9]+)\\.([0-9]+)\\.([0-9]+)-([aA-zZ]+)" "\\4" EVENT_GIT___VERSION_STAGE ${GITVERSION})
    			endif()
    		endif()
    endmacro()