fix(cmake): Tidy and format commands

This commit is contained in:
Michael Carlberg 2016-11-25 11:49:37 +01:00
parent 19868041e1
commit 0128014d44
4 changed files with 76 additions and 20 deletions

View File

@ -1,6 +1,23 @@
--- ---
Checks: 'clang-analyzer-core-*,clang-analyzer-nullability-*,clang-analyzer-unix-*,cppcoreguidelines-*,modernize-*,performance-*,readability-*' Checks: '-*,performance-faster-string-find,performance-for-range-copy,readability-*,modernize-*,-modernize-raw-string-literal,-modernize-use-bool-literals,-readability-implicit-bool-cast,-readability-else-after-return,-readability-named-parameter'
WarningsAsErrors: '' CheckOptions:
- key: modernize-loop-convert.NamingStyle
value: lower_case
- key: readability-identifier-naming.GlobalConstantPrefix
value: 'g_'
- key: readability-identifier-naming.ClassCase
value: lower_case
- key: readability-identifier-naming.ClassConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.ClassMethodCase
value: lower_case
- key: readability-identifier-naming.MemberCase
value: lower_case
- key: readability-identifier-naming.ProtectedMemberPrefix
value: 'm_'
- key: readability-identifier-naming.PrivateMemberPrefix
value: 'm_'
HeaderFilterRegex: '' HeaderFilterRegex: ''
WarningsAsErrors: ''
AnalyzeTemporaryDtors: false AnalyzeTemporaryDtors: false
... ...

View File

@ -24,27 +24,24 @@ add_custom_target(uninstall COMMAND ${CMAKE_COMMAND}
-P ${PROJECT_BINARY_DIR}/cmake/uninstall.cmake) -P ${PROJECT_BINARY_DIR}/cmake/uninstall.cmake)
# }}} # }}}
# Target: clang-format {{{ # Target: codeformat (clang-format) {{{
find_program(CLANG_FORMAT "clang-format") add_custom_target(codeformat)
add_custom_command(TARGET codeformat COMMAND
if(CLANG_FORMAT) ${PROJECT_SOURCE_DIR}/common/clang-format.sh ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/include)
file(GLOB_RECURSE HEADERS ${PROJECT_SOURCE_DIR}/include/*.hpp)
file(GLOB_RECURSE SOURCES ${PROJECT_SOURCE_DIR}/src/*.cpp)
add_custom_target(clang-format COMMAND ${CLANG_FORMAT}
-i -style=file ${HEADERS} ${SOURCES})
endif()
find_program(CLANG_TIDY "clang-tidy")
# }}} # }}}
# Target: clang-tidy {{{ # Target: codecheck (clang-tidy) {{{
if(CLANG_TIDY) add_custom_target(codecheck)
add_custom_target(clang-tidy add_custom_command(TARGET codecheck COMMAND
COMMAND ${CLANG_TIDY} -p ${PROJECT_SOURCE_DIR}/common/clang-tidy.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src)
${PROJECT_BINARY_DIR}
${PROJECT_SOURCE_DIR}/src/main.cpp) # }}}
endif() # Target: codecheck-fix (clang-tidy + clang-format) {{{
add_custom_target(codecheck-fix)
add_custom_command(TARGET codecheck-fix COMMAND
${PROJECT_SOURCE_DIR}/common/clang-tidy.sh ${PROJECT_BINARY_DIR} -fix ${PROJECT_SOURCE_DIR}/src)
# }}} # }}}

19
common/clang-format.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
main() {
if [ $# -lt 1 ]; then
echo "$0 DIR..." 1>&2
exit 1
fi
search="${*:-.}"
[ -d "$search" ] || search="$(dirname "$search")"
# shellcheck disable=2086
find $search -regex ".*.[c|h]pp" \
-exec printf "\033[32;1m** \033[0mFormatting %s\n" {} \; \
-exec clang-format -style=file -i {} \;
}
main "$@"

23
common/clang-tidy.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
main() {
if [ $# -lt 2 ]; then
echo "$0 [build_path] [-fix] DIR..." 1>&2
exit 1
fi
args="-p $1"; shift
if [ "$1" = "-fix" ]; then
args="${args} -fix"; shift
fi
# shellcheck disable=2086
find "${@:-.}" -regex ".*.[c|h]pp" \
-exec printf "\033[32;1m** \033[0mProcessing %s\n" {} \; \
-exec clang-tidy $args {} \; \
-exec printf "\033[32;1m** \033[0mFormatting %s\n" {} \; \
-exec clang-format -style=file -i {} \;
}
main "$@"