Commit 55ba10d4 authored by Simon Spannagel's avatar Simon Spannagel
Browse files

CMake: Determine Version in Chechout with --notags

(cherry picked from commit e421a9f1)
parent a09411a9
Loading
Loading
Loading
Loading
+26 −20
Original line number Diff line number Diff line
@@ -15,9 +15,14 @@ FUNCTION(get_version project_version)
            EXEC_PROGRAM(
                git ${CMAKE_CURRENT_SOURCE_DIR}
                ARGS describe --tags HEAD
                OUTPUT_VARIABLE ${project_version})
            STRING(REGEX REPLACE "^release-" "" ${project_version} ${${project_version}})
            STRING(REGEX REPLACE "([v0-9.]+)-([0-9]+)-([A-Za-z0-9]+)" "\\1-\\2-\\3" ${project_version} ${${project_version}})
                OUTPUT_VARIABLE version
                RETURN_VALUE status)
            IF(status AND NOT status EQUAL 0)
                MESSAGE(STATUS "Git repository present, but could not find any tags.")
                SET(${project_version} "${${project_version}}-unknown")
            ELSE()
                STRING(REGEX REPLACE "^release-" "" version ${version})
                STRING(REGEX REPLACE "([v0-9.]+)-([0-9]+)-([A-Za-z0-9]+)" "\\1-\\2-\\3" ${project_version} ${version})
                EXEC_PROGRAM(
                    git ARGS
                    status --porcelain ${CMAKE_CURRENT_SOURCE_DIR}
@@ -34,16 +39,17 @@ FUNCTION(get_version project_version)
                    MESSAGE(STATUS "Found CI tag flag, building tagged version")
                    SET(tag_found TRUE)
                ENDIF()
        ELSE(GIT_FOUND)
            ENDIF()
        ELSE()
            MESSAGE(STATUS "Git repository present, but could not find git executable.")
            SET(${project_version} "${${project_version}}-unknown")
        ENDIF(GIT_FOUND)
        ENDIF()
    ELSE(NOT source_package)
        # If we don't have git we can not really do anything
        MESSAGE(STATUS "Source tarball build - no repository present, appending last commit for reference.")
        SET(${project_version} "$Format:%(describe)$-tar")
        SET(tag_found TRUE)
    ENDIF(NOT source_package)
    ENDIF()

    # Set the project version in the parent scope
    SET(TAG_FOUND