From 97345f4866c3b99cb3708b22b0e5895a423422ff Mon Sep 17 00:00:00 2001 From: David Capello Date: Fri, 3 May 2019 09:34:02 -0300 Subject: [PATCH] Add ENABLE_CLANG_TIDY option --- .clang-tidy | 4 ++++ CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++++++++ laf | 2 +- 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .clang-tidy diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 000000000..7f469847b --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,4 @@ +--- +Checks: 'clang-analyzer-*' +WarningsAsErrors: '' +... diff --git a/CMakeLists.txt b/CMakeLists.txt index f7b27f9e3..6dc9423d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,6 +80,7 @@ option(ENABLE_STEAM "Compile with Steam library" off) option(ENABLE_DEVMODE "Compile vesion for developers" off) option(ENABLE_UI "Compile UI (turn off to compile CLI-only version)" on) option(FULLSCREEN_PLATFORM "Enable fullscreen by default" off) +option(ENABLE_CLANG_TIDY "Enable static analysis" off) set(CUSTOM_WEBSITE_URL "" CACHE STRING "Enable custom local webserver to check updates") if(ENABLE_NEWS OR ENABLE_UPDATER) @@ -326,3 +327,42 @@ set(UNDO_TESTS ${ENABLE_TESTS} CACHE BOOL "Enable undo tests") add_subdirectory(laf) add_subdirectory(src) + +###################################################################### +# Using clang-tidy with cmake. +# Based on http://mariobadr.com/using-clang-tidy-with-cmake-36.html + +if(ENABLE_CLANG_TIDY) + find_program(CLANG_TIDY_EXE + NAMES "clang-tidy" + DOC "Path to clang-tidy executable") + if(NOT CLANG_TIDY_EXE) + message(STATUS "clang-tidy not found.") + else() + message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}") + set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}") + endif() + + if(CLANG_TIDY_EXE) + set_target_properties(app-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(aseprite PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(cfg-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(clip PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(dio-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(doc-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(filters-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(fixmath-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(flic-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(gen PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(laf-base PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(laf-ft PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(laf-gfx PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(laf-os PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(net-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(obs PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(render-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(ui-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(undo PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + set_target_properties(updater-lib PROPERTIES CXX_CLANG_TIDY "${DO_CLANG_TIDY}") + endif() +endif() diff --git a/laf b/laf index 4fddd8024..ad6dff6df 160000 --- a/laf +++ b/laf @@ -1 +1 @@ -Subproject commit 4fddd802417ad903fe7dd590d7175d556c0697dd +Subproject commit ad6dff6dffb3e1ff73140d00714725dee7ecb0fc