From 042c35d7bb0425351bb3fa52a0b572e05c180393 Mon Sep 17 00:00:00 2001
From: Daniel <d.hornung@indiscale.com>
Date: Thu, 26 Aug 2021 14:07:07 +0200
Subject: [PATCH] DOC: README_SETUP.md updated, some formatting.

---
 .gitignore                 |  6 +++++
 Makefile                   | 49 ++++++++++++++++++++++++++++++++++++++
 README.md                  |  4 ++++
 test/CMakeLists.txt        |  1 -
 test/caosdb_test_utility.h | 22 +++++++++--------
 5 files changed, 71 insertions(+), 11 deletions(-)
 create mode 100644 Makefile

diff --git a/.gitignore b/.gitignore
index f5e46b6..2df7356 100644
--- a/.gitignore
+++ b/.gitignore
@@ -144,3 +144,9 @@ flycheck_*.el
 
 # Python/Sphinx
 env/
+
+# Conan
+conan.lock
+conanbuildinfo*
+conaninfo.txt
+graph_info.json
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..a1e4637
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,49 @@
+# ** header v3.0
+# This file is a part of the CaosDB Project.
+#
+# Copyright (C) 2021 IndiScale GmbH <info@indiscale.com>
+# Copyright (C) 2021 Daniel Hornung <d.hornung@indiscale.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# ** end header
+
+# This Makefile is a wrapper for several other scripts.
+
+
+CLANG-FORMAT = clang-format-11
+CLANG-TIDY = clang-tidy-11
+
+CLANG_TIDY_CHECKS = "--checks=*,-fuchsia-*,-llvmlibc-*,-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto,-readability-function-cognitive-complexity,-cppcoreguidelines-pro-type-vararg,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-cppcoreguidelines-pro-type-vararg,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-hicpp-no-array-decay"
+CLANG_TIDY_CMD = $(CLANG-TIDY) \
+  --header-filter=caosdb/.*[^\(\.pb\.h\)]$ \
+  --fix \
+  $(CLANG_TIDY_CHECKS)
+
+
+.PHONY: help
+help:
+	@echo "Targets:"
+	@echo "    conan-install - Install locally with Conan."
+	@echo "    style - auto-format the source files."
+
+conan-install:
+	conan install . -s "compiler.libcxx=libstdc++11"
+.PHONY: conan-install
+
+format: conan-install
+	$(CLANG-FORMAT) -i --verbose \
+	 $$(find test/ -type f -iname "*.cpp" -o -iname "*.h" -o -iname "*.h.in")
+	$(CLANG_TIDY_CMD) $$(find test/ -type f -iname "*.cpp" -o -iname "*.h" -o -iname "*.h.in")
+.PHONY: format
diff --git a/README.md b/README.md
index 9d2b880..a1e4491 100644
--- a/README.md
+++ b/README.md
@@ -26,3 +26,7 @@ Create a local conan package from the caosdb-cpplib repository
 	- CAOSDB_SERVER_GRPC_PORT_HTTPS
 	- CAOSDB_SERVER_CERT
 6. Run with `ctest` in the build directory.
+
+## Formatting, style, linting ##
+
+`make format`
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index bfc0e7b..ec9d390 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -81,7 +81,6 @@ if(LINTING)
         message(STATUS "clang-tidy: ${clang_tidy}")
         set(_CMAKE_CXX_CLANG_TIDY "${clang_tidy}"
             "--header-filter=caosdb/.*[^\(\.pb\.h\)]$"
-            "--warnings-as-errors=*"
             "--fix")
         set(_CMAKE_CXX_CLANG_TIDY_CHECKS
           "--checks=*,-fuchsia-*,-llvmlibc-*,-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto,-readability-function-cognitive-complexity,-cppcoreguidelines-pro-type-vararg,-cppcoreguidelines-non-private-member-variables-in-classes,-misc-non-private-member-variables-in-classes,-cppcoreguidelines-pro-type-vararg,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-hicpp-no-array-decay")
diff --git a/test/caosdb_test_utility.h b/test/caosdb_test_utility.h
index cd1b47c..4cde3dc 100644
--- a/test/caosdb_test_utility.h
+++ b/test/caosdb_test_utility.h
@@ -32,15 +32,17 @@
  * @date 2021-07-07
  */
 #define EXPECT_THROW_MESSAGE(statement, exeption_type, message)                \
-  EXPECT_THROW(try { statement; } catch (const exeption_type &e) {             \
-    EXPECT_EQ(std::string(e.what()), message);                                 \
-    throw;                                                                     \
-  },                                                                           \
-               exeption_type)
+  EXPECT_THROW(                                                                \
+      try { statement; } catch (const exeption_type &e) {                      \
+        EXPECT_EQ(std::string(e.what()), message);                             \
+        throw;                                                                 \
+      },                                                                       \
+      exeption_type)
 #define ASSERT_THROW_MESSAGE(statement, exeption_type, message)                \
-  ASSERT_THROW(try { statement; } catch (const exeption_type &e) {             \
-    ASSERT_EQ(std::string(e.what()), message);                                 \
-    throw;                                                                     \
-  },                                                                           \
-               exeption_type)
+  ASSERT_THROW(                                                                \
+      try { statement; } catch (const exeption_type &e) {                      \
+        ASSERT_EQ(std::string(e.what()), message);                             \
+        throw;                                                                 \
+      },                                                                       \
+      exeption_type)
 #endif
-- 
GitLab