diff options
Diffstat (limited to 'etc/scanners.cmake')
| -rw-r--r-- | etc/scanners.cmake | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/etc/scanners.cmake b/etc/scanners.cmake new file mode 100644 index 0000000..0a86f19 --- /dev/null +++ b/etc/scanners.cmake @@ -0,0 +1,52 @@ +# file (GLOB_RECURSE RayTracer_CC_FILES ${CMAKE_SOURCE_DIR}/src/*.cc) + +# file (GLOB_RECURSE ALL_SRC_FILES *.hh *.cc) + +# add_custom_target (format "clang-format" -i ${ALL_SRC_FILES} COMMENT "Formatting source code...") + + +find_program(CLANG_FORMAT_EXE clang-format) +if(CLANG_FORMAT_EXE) + file(GLOB_RECURSE ALL_FMT_FILES + "${CMAKE_SOURCE_DIR}/src/*.cc" + "${CMAKE_SOURCE_DIR}/src/*.cpp" + "${CMAKE_SOURCE_DIR}/src/*.h" + "${CMAKE_SOURCE_DIR}/src/*.hpp" + "${CMAKE_SOURCE_DIR}/apps/*.cc" + "${CMAKE_SOURCE_DIR}/apps/*.cpp" + ) + + add_custom_target(format + COMMAND ${CLANG_FORMAT_EXE} -i -style=file ${ALL_FMT_FILES} + COMMENT "Formatting source code..." + ) +else() + message(WARNING "clang-format not found! 'format' target will be disabled.") +endif() + +# clang-tidy +# find_program(CLANG_TIDY_EXE clang-tidy) +# if(CLANG_TIDY_EXE) +# message(STATUS "Clang-Tidy enabled: will run automatically during compilation.") +# set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE}") +# else() +# message(WARNING "clang-tidy not found! Static analysis will be disabled.") +# endif() + +foreach (tidy_target ${ALL_SRC_FILES}) + get_filename_component (basename ${tidy_target} NAME) + get_filename_component (dirname ${tidy_target} DIRECTORY) + get_filename_component (basedir ${dirname} NAME) + set (tidy_target_name "${basedir}__${basename}") + set (tidy_command clang-tidy --quiet -header-filter=.* -p=${PROJECT_BINARY_DIR} ${tidy_target}) + add_custom_target (tidy_${tidy_target_name} ${tidy_command}) + list (APPEND ALL_TIDY_TARGETS tidy_${tidy_target_name}) + + if (${tidy_target} IN_LIST RayTracer_CC_FILES) + list (APPEND RayTracer_TIDY_TARGETS tidy_${tidy_target_name}) + endif () +endforeach (tidy_target) + +add_custom_target (tidy DEPENDS ${RayTracer_TIDY_TARGETS}) + +add_custom_target (tidy-all DEPENDS ${ALL_TIDY_TARGETS}) |
