diff --git a/.gitignore b/.gitignore index f5e46b698cdb99eb18c7bac8e226c7692325cbd7..2df735637f2c21743cd290bccc49bee78a57da95 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 0000000000000000000000000000000000000000..a1e463721011de1db6145c4c2fcb96342b01c2d6 --- /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 9d2b880004b551f8e32eb0254e47377744584e69..a1e449184088f9eb762c8cbbae16d0360c7ef71f 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 bfc0e7b2d41e4095bbe892fa2dc838b2952180f1..ec9d39041bf87350c1b018615f96203475ae01a9 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 cd1b47ce8f61a8d8d66ae2a7d76ffce46c2a3739..4cde3dc5059acf60a04b071154b44a59b67e9833 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