From cf1298f93c3d0caceda39ac2a7c815b702dd4319 Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Wed, 7 Oct 2020 09:10:28 +0200
Subject: [PATCH] Add clang tidy file with most of the checks active. In
 CMakeLists enables clang-tidy for all targets.

---
 .clang-tidy    | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
 CMakeLists.txt |  3 +++
 2 files changed, 54 insertions(+)
 create mode 100644 .clang-tidy

diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 000000000..f959289be
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,51 @@
+---
+Checks: '
+-*,
+
+bugprone-*,
+-bugprone-branch-clone,
+-bugprone-narrowing-conversions,
+
+misc-*,
+
+modernize-*,
+-modernize-avoid-c-arrays,
+-modernize-use-trailing-return-type,
+-modernize-raw-string-literal,
+-modernize-loop-convert,
+-modernize-use-auto,
+-modernize-use-nullptr,
+
+mpi-*,
+
+openmp-*
+
+performance-*,
+
+portability-*
+
+readability-*,
+-readability-braces-around-statements,
+-readability-magic-numbers,
+-readability-isolate-declaration,
+
+
+cppcoreguidelines-avoid-goto,
+cppcoreguidelines-avoid-non-const-global-variables,
+cppcoreguidelines-init-variables,
+cppcoreguidelines-interfaces-global-init,
+cppcoreguidelines-no-malloc,
+cppcoreguidelines-owning-memory,
+cppcoreguidelines-pro-type-const-cast,
+cppcoreguidelines-pro-type-member-init,
+cppcoreguidelines-pro-type-static-cast-downcast,
+cppcoreguidelines-slicing,
+cppcoreguidelines-special-member-functions,
+
+-cppcoreguidelines-init-variables,
+-cppcoreguidelines-pro-type-member-init,
+-cppcoreguidelines-owning-memory
+
+'
+HeaderFilterRegex: '\.h$'
+...
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6c98c8aa6..69e078ffe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,6 +57,9 @@ endif()
 include(CMakePrintHelpers)
 include(${VF_CMAKE_DIR}/VirtualFluidsMacros.cmake)
 
+find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
+set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
+
 #################################################################################
 #  COMMON LIBRARIES
 #################################################################################
-- 
GitLab