Commit 59929b52 authored by Paul Schütze's avatar Paul Schütze
Browse files

Merge branch 'b-cmake-exec' into 'v3.1-stable'

[v3.1-stable] CMake: use EXECUTE_PROCESS

See merge request allpix-squared/allpix-squared!1136
parents 96906273 11fb44ca
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -37,10 +37,11 @@ ENDIF()
# Adding clang-format check and formatter if found
FIND_PROGRAM(CLANG_FORMAT NAMES "clang-format-${CLANG_FORMAT_VERSION}" "clang-format")
IF(CLANG_FORMAT)
    EXEC_PROGRAM(
        ${CLANG_FORMAT} ${CMAKE_CURRENT_SOURCE_DIR}
        ARGS --version
        OUTPUT_VARIABLE CLANG_VERSION)
    EXECUTE_PROCESS(
        COMMAND ${CLANG_FORMAT} --version
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        OUTPUT_VARIABLE CLANG_VERSION
        OUTPUT_STRIP_TRAILING_WHITESPACE)
    STRING(REGEX REPLACE ".* ([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" CLANG_MAJOR_VERSION ${CLANG_VERSION})

    # Let's treat macOS differently because they don't have up-to-date versions
@@ -86,10 +87,11 @@ FIND_PROGRAM(CLANG_TIDY NAMES "clang-tidy-${CLANG_TIDY_VERSION}" "clang-tidy")
# Enable clang tidy only if using a clang compiler
IF(CLANG_TIDY AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

    EXEC_PROGRAM(
        ${CLANG_TIDY} ${CMAKE_CURRENT_SOURCE_DIR}
        ARGS --version
        OUTPUT_VARIABLE CTIDY_VERSION)
    EXECUTE_PROCESS(
        COMMAND ${CLANG_TIDY} --version
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
        OUTPUT_VARIABLE CTIDY_VERSION
        OUTPUT_STRIP_TRAILING_WHITESPACE)
    STRING(REGEX REPLACE ".* ([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" CLANG_TIDY_MAJOR_VERSION ${CTIDY_VERSION})
    MESSAGE(STATUS "Found ${CLANG_TIDY} version ${CLANG_TIDY_MAJOR_VERSION}")

+11 −10
Original line number Diff line number Diff line
@@ -15,27 +15,28 @@ FUNCTION(get_version project_version)
        # Get the version from last git tag plus number of additional commits:
        FIND_PACKAGE(Git QUIET)
        IF(GIT_FOUND)
            EXEC_PROGRAM(
                git ${CMAKE_CURRENT_SOURCE_DIR}
                ARGS describe --tags HEAD
            EXECUTE_PROCESS(
                COMMAND git describe --tags HEAD
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                OUTPUT_VARIABLE version
                RETURN_VALUE status)
                RESULT_VARIABLE status
                OUTPUT_STRIP_TRAILING_WHITESPACE)
            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}
                EXECUTE_PROCESS(
                    COMMAND git status --porcelain
                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
                    OUTPUT_VARIABLE PROJECT_STATUS)
                IF(PROJECT_STATUS STREQUAL "")
                    MESSAGE(STATUS "Git project directory is clean.")
                ELSE(PROJECT_STATUS STREQUAL "")
                ELSE()
                    MESSAGE(STATUS "Git project directory is dirty:\n${PROJECT_STATUS}.")
                    SET(${project_version} "${${project_version}}-dirty")
                ENDIF(PROJECT_STATUS STREQUAL "")
                ENDIF()

                # Check if commit flag has been set by the CI:
                IF(DEFINED ENV{CI_COMMIT_TAG})