Commit 64ac7d2a authored by Paul Schütze's avatar Paul Schütze
Browse files

Merge branch 'tidyfast' into 'master'

Run Linter only on Changed Files

See merge request allpix-squared/allpix-squared!626
parents 27cfad64 282da3ff
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -155,6 +155,15 @@ fmt:cc7-llvm-lint:
    script:
        - cmake -GNinja -DCMAKE_CXX_FLAGS="-Werror" -DBUILD_LCIOWriter=ON -DCMAKE_BUILD_TYPE=RELEASE -DLCIO_DIR=$LCIO_DIR ..
        - ninja check-lint 2> /dev/null
    only:
        - schedules
        - tags

fmt:cc7-llvm-lint-diff:
    extends: .format
    script:
        - cmake -GNinja -DCMAKE_CXX_FLAGS="-Werror" -DBUILD_LCIOWriter=ON -DCMAKE_BUILD_TYPE=RELEASE -DLCIO_DIR=$LCIO_DIR ..
        - ninja check-lint-diff 2> /dev/null

fmt:cmake-lint:
    extends: .format
+38 −0
Original line number Diff line number Diff line
@@ -125,6 +125,44 @@ IF(CLANG_TIDY AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
    ELSE()
        MESSAGE(STATUS "Could NOT find run-clang-tidy script")
    ENDIF()

    # Add targets for differing files only, directly calling clang-tidy
    IF(NOT TARGET_BRANCH)
        SET(TARGET_BRANCH "master")
    ENDIF()

    EXEC_PROGRAM(
        git ${CMAKE_PROJECT_SOURCE_DIR}
        ARGS diff origin/${TARGET_BRANCH} --name-only --line-prefix=`git rev-parse --show-toplevel`/
        OUTPUT_VARIABLE changed_files
        RETURN_VALUE retval)

    IF(NOT retval)
        STRING(REPLACE "\n" ";" changed_files "${changed_files}")

        SET(COMMANDS)
        FOREACH(srcfile ${changed_files})
            IF("${srcfile}" IN_LIST CHECK_CXX_SOURCE_FILES)
                LIST(
                    APPEND
                    COMMANDS
                    COMMAND
                    ${CLANG_TIDY}
                    --config-file=${CMAKE_SOURCE_DIR}/.clang-tidy
                    --header-filter=${CMAKE_SOURCE_DIR}
                    -p=${CMAKE_BINARY_DIR}
                    ${srcfile}
                    | tee -a ${CMAKE_BINARY_DIR}/check_lint_diff_file.txt)
            ENDIF()
        ENDFOREACH()

        ADD_CUSTOM_TARGET(
            check-lint-diff
            COMMAND > ${CMAKE_BINARY_DIR}/check_lint_diff_file.txt
            ${COMMANDS}
            COMMAND ! grep -c ": error: " ${CMAKE_BINARY_DIR}/check_lint_diff_file.txt > /dev/null
            COMMENT "Checking for problems in source files")
    ENDIF()
ELSE()
    IF(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
        MESSAGE(STATUS "Could NOT find clang-tidy version ${CLANG_FORMAT_VERSION}")