| find_package(ClangTools) |
| # clang-tidy uses the compile_commands.json file for include dirs and other config |
| add_custom_target(clang-tidy ${CLANG_TIDY_PROGRAM} |
| -p=compile_commands.json |
| -format-style=file |
| -- |
| ${lib_sources} |
| DEPENDS ${lib_sources} |
| COMMENT "Run clang-tidy on the library") |
| add_dependencies(clang-tidy open62541) |
| set_target_properties(clang-tidy PROPERTIES FOLDER "CodeAnalysis") |
| |
| add_custom_target(cpplint cpplint |
| ${lib_sources} |
| ${internal_headers} |
| ${default_plugin_headers} |
| ${default_plugin_sources} |
| ${ua_architecture_headers} |
| ${ua_architecture_sources} |
| DEPENDS ${lib_sources} |
| ${internal_headers} |
| ${default_plugin_headers} |
| ${default_plugin_sources} |
| ${ua_architecture_headers} |
| ${ua_architecture_sources} |
| COMMENT "Run cpplint code style checker on the library") |
| set_target_properties(cpplint PROPERTIES FOLDER "CodeAnalysis") |
| |
| |
| # adds new target "clang-format" to enforce clang-format rules |
| find_program(CLANG_FORMAT_EXE NAMES "clang-format") |
| if(CLANG_FORMAT_EXE) |
| file(GLOB_RECURSE FILES_TO_FORMAT |
| ${PROJECT_SOURCE_DIR}/arch/*.c |
| ${PROJECT_SOURCE_DIR}/plugins/*.c |
| ${PROJECT_SOURCE_DIR}/src/*.c |
| ${PROJECT_SOURCE_DIR}/arch/*.h |
| ${PROJECT_SOURCE_DIR}/include/*.h |
| ${PROJECT_SOURCE_DIR}/plugins/*.h |
| ${PROJECT_SOURCE_DIR}/src/*.h |
| ) |
| add_custom_target( |
| clang-format COMMAND ${CLANG_FORMAT_EXE} |
| -style=file |
| -i |
| ${FILES_TO_FORMAT} |
| ) |
| endif() |