From 31ec3c8cf74cb838cbf93dad6de04c716ff86354 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Tue, 5 May 2020 10:37:17 +0200 Subject: [PATCH] check for clang-format version --- cmake/FindClangFormat.cmake | 15 ++++++++++----- cmake/clang-format.cmake | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/cmake/FindClangFormat.cmake b/cmake/FindClangFormat.cmake index c3a262533..63c29ecfb 100644 --- a/cmake/FindClangFormat.cmake +++ b/cmake/FindClangFormat.cmake @@ -1,6 +1,4 @@ # Find Clang format -# -# if(NOT ClangFormat_BIN_NAME) set(ClangFormat_BIN_NAME clang-format) endif() @@ -27,8 +25,15 @@ mark_as_advanced( ClangFormat_BIN) if(ClangFormat_FOUND) - # A CMake script to find all source files and setup clang-format targets for them - include(clang-format) + EXEC_PROGRAM(${ClangFormat_BIN} ${CMAKE_CURRENT_SOURCE_DIR} ARGS --version OUTPUT_VARIABLE CLANG_VERSION) + STRING(REGEX REPLACE ".*([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" CLANG_MAJOR_VERSION ${CLANG_VERSION}) + if((${CLANG_MAJOR_VERSION} GREATER "9") OR (${CLANG_MAJOR_VERSION} EQUAL "9")) + # A CMake script to find all source files and setup clang-format targets for them + message(STATUS "found clang-format ${CLANG_VERSION} adding formatting targets") + include(clang-format) + else() + message(STATUS "clang-format version ${CLANG_VERSION} found but need at least 9. Not setting up format targets") + endif() else() - message("clang-format not found. Not setting up format targets") + message(STATUS "clang-format not found. Not setting up format targets") endif() diff --git a/cmake/clang-format.cmake b/cmake/clang-format.cmake index 5db661e11..158361c84 100644 --- a/cmake/clang-format.cmake +++ b/cmake/clang-format.cmake @@ -17,6 +17,7 @@ foreach (SOURCE_FILE ${ALL_SOURCE_FILES}) endforeach () endforeach () +#target for formatting soruce files add_custom_target(format COMMENT "Running clang-format to change files" COMMAND ${ClangFormat_BIN} @@ -25,7 +26,8 @@ add_custom_target(format ${ALL_SOURCE_FILES} ) -#put back i + +#target to check format on source files add_custom_target(format-check COMMENT "Checking clang-format changes" # Use ! to negate the result for correct output @@ -37,7 +39,7 @@ add_custom_target(format-check | grep -q "replacement offset" ) - +# debug to check which file will be formatted add_custom_target( listformatfiles COMMAND