Skip to content
Snippets Groups Projects
versioning.cmake 1.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • message("[Versioning] Current version is ${PROJECT_VERSION}")
    
    # git describe into version string
    if(ALIB_GIT_DESCRIBE MATCHES ".*unknown*")
    	set(ALIB_SNAPSHOT_VERSION ${ALIB_GIT_DESCRIBE})
    	string(REGEX REPLACE "^v" "" ALIB_SNAPSHOT_VERSION ${ALIB_SNAPSHOT_VERSION})
    	string(REGEX REPLACE "\([^-]*-g\)" "r\\1" ALIB_SNAPSHOT_VERSION ${ALIB_SNAPSHOT_VERSION})
    	string(REPLACE "-" "." ALIB_SNAPSHOT_VERSION ${ALIB_SNAPSHOT_VERSION})
    
    
    # overwrite git info, if -DVERSION provided
    if(DEFINED VERSION)
    	set(ALIB_SNAPSHOT_VERSION ${VERSION})
    endif()
    
    
    
    if(BUILD_TYPE STREQUAL "Snapshot")
    
    	if(DEFINED ALIB_SNAPSHOT_VERSION)
    		message("[Versioning] Snapshot version: ${ALIB_SNAPSHOT_VERSION}")
    	else()
    		message(WARNING "[Versioning] Snapshot version not defined (could not reach GIT and -D was not provided")
    		set(ALIB_SNAPSHOT_VERSION "${PROJECT_VERSION}.r<unknown>.g<unknown>")
    	endif()
    
    endif()
    
    if(BUILD_TYPE STREQUAL "Debug")
    	set(ALIB_VERSION_INFO "${PROJECT_VERSION} | Debug build @ ${ALIB_GIT_BRANCH} ${ALIB_GIT_DESCRIBE}" )
    elseif(BUILD_TYPE STREQUAL "Release")
    	set(ALIB_VERSION_INFO "${PROJECT_VERSION}")
    elseif(BUILD_TYPE STREQUAL "Snapshot")
    	set(ALIB_VERSION_INFO "${ALIB_SNAPSHOT_VERSION}")
    endif()
    
    
    configure_file (
    	${CONFIGURE_HEADERS_SRC_DIR}/version.hpp.in
    	${CONFIGURE_HEADERS_DST_DIR}/version.hpp
    	)
    
    install (
    	FILES ${CONFIGURE_HEADERS_DST_DIR}/version.hpp
    	DESTINATION include/algorithms-library/
    	)