diff --git a/cmake/check-coding-style.sh b/cmake/check-coding-style.sh index 2161c995a17882c5000454a7179bceaa5a457feb..77e086ef66db9b81c69dc0c88129296d0cf8912b 100755 --- a/cmake/check-coding-style.sh +++ b/cmake/check-coding-style.sh @@ -4,9 +4,15 @@ ERRFILE=`mktemp` export ERRFILE echo 0 > "${ERRFILE}" +# This is necessary to get the two paths to match up, since we get a full path from cmake +mypath=$(pwd) +mypath=$(realpath $mypath) +exclude_path=${1:-justignoreme} +exclude_pattern="$exclude_path/*" + # check clang-format formatting if which clang-format-14 > /dev/null; then - find \( -name *.cc -o -name *.cpp -o -name *.h \) -exec clang-format-14 --output-replacements-xml \{\} \; | grep "^<replacement " > /dev/null + find $mypath \( -name *.cc -o -name *.cpp -o -name *.h \) -not -path "$exclude_pattern" -exec clang-format-14 --output-replacements-xml \{\} \; | grep "^<replacement " > /dev/null if [ $? -ne 1 ]; then echo 1 > "${ERRFILE}" echo "Code formatting incorrect!" @@ -30,7 +36,7 @@ checkCopyrightComment() { fi } export -f checkCopyrightComment -find \( -name *.cc -o -name *.cpp -o -name *.h \) -exec bash -c 'checkCopyrightComment {}' \; +find $mypath \( -name *.cc -o -name *.cpp -o -name *.h \) -not -path "$exclude_pattern" -exec bash -c 'checkCopyrightComment {}' \; # check all header files for "#pragma once" in 3rd line checkPramgaOnce() { @@ -40,7 +46,7 @@ checkPramgaOnce() { fi } export -f checkPramgaOnce -find -name *.h -exec bash -c 'checkPramgaOnce {}' \; +find $mypath -name *.h -not -path "$exclude_pattern" -exec bash -c 'checkPramgaOnce {}' \; ERROR=`cat "${ERRFILE}"` rm -f "${ERRFILE}" diff --git a/cmake/enable_code_style_check.cmake b/cmake/enable_code_style_check.cmake index 735d42c93122b6212661ff18c8b8568a01c0564c..efac67d7096f488fa9f888ab794e268e3259f3d2 100644 --- a/cmake/enable_code_style_check.cmake +++ b/cmake/enable_code_style_check.cmake @@ -18,5 +18,5 @@ ####################################################################################################################### enable_testing() -add_test(NAME coding_style COMMAND ${CMAKE_SOURCE_DIR}/cmake/check-coding-style.sh +add_test(NAME coding_style COMMAND ${CMAKE_SOURCE_DIR}/cmake/check-coding-style.sh ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})