From 925b1e6e28505060ac4d82053e71bc5c538dc4e3 Mon Sep 17 00:00:00 2001
From: Joscha Schmiedt <joscha@schmiedt.dev>
Date: Mon, 29 Jul 2024 22:37:38 +0200
Subject: [PATCH] CHG: Adapt CmakeLists.txt for Conan 2.0

- Remove references to CONAN_LIBS variables
- use find_package
---
 CMakeLists.txt      | 24 ++++++++++--------------
 conanfile.txt       |  2 ++
 test/CMakeLists.txt | 18 ++++++++++--------
 3 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e4c84cf..7f9f58f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,20 +28,16 @@ set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
-
-# dependency management with conan
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
-# fix grpc - remove unsecure (no-op ssl implementations)
-string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS_GRPC
-    "${CONAN_LIBS_GRPC}")
-string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS_GRPC
-    "${CONAN_PKG_LIBS_GRPC}")
-string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS
-    "${CONAN_LIBS}")
-string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS
-    "${CONAN_PKG_LIBS}")
+# # fix grpc - remove unsecure (no-op ssl implementations)
+# TODO: Find out if this is still necessary
+# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS_GRPC
+#     "${CONAN_LIBS_GRPC}")
+# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS_GRPC
+#     "${CONAN_PKG_LIBS_GRPC}")
+# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS
+#     "${CONAN_LIBS}")
+# string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS
+#     "${CONAN_PKG_LIBS}")
 
 
 set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
diff --git a/conanfile.txt b/conanfile.txt
index f0bcf87..05e1980 100644
--- a/conanfile.txt
+++ b/conanfile.txt
@@ -1,5 +1,7 @@
 [requires]
 caosdb/[>=0.3.0-dev, include_prerelease=True]
+protobuf/3.21.12
+grpc/1.48.4
 
 [test_requires]
 gtest/1.11.0
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 4c74001..8877e3c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -86,8 +86,7 @@ if(LINTING)
     else()
         message(STATUS "clang-tidy: ${clang_tidy}")
         set(_CMAKE_CXX_CLANG_TIDY "${clang_tidy}"
-            "--header-filter=caosdb/.*[^\(\.pb\.h\)]$"
-            "--fix")
+            "--header-filter=caosdb/.*[^\(\.pb\.h\)]$")
         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,-altera-*")
     endif()
@@ -103,22 +102,25 @@ endif()
 # add special cmake functions for gtest
 include(GoogleTest REQUIRED)
 
+find_package(caosdb)
+find_package(GTest)
+find_package(gRPC)
+find_package(protobuf)
+
 # loop over all test cases and add them to the test runner
 list(LENGTH test_cases len_test_cases)
 math(EXPR len_test_cases "${len_test_cases} - 1")
 foreach (i RANGE "${len_test_cases}")
     list(GET test_cases ${i} test_case_name)
     add_executable(${test_case_name} ${test_case_name}.cpp)
-    target_link_libraries(${test_case_name} PRIVATE ${CONAN_LIBS_CAOSDB}
-        ${CONAN_LIBS_GTEST} ${CONAN_LIBS_GRPC} ${CONAN_LIBS_ABSEIL}
-        ${CONAN_LIBS_OPENSSL} ${CONAN_LIBS_C-ARES} ${CONAN_LIBS_BZIP2}
-        ${CONAN_LIBS_PROTOBUF} ${CONAN_LIBS_ZLIB} ${CONAN_LIBS_RE2}
-        ${CONAN_LIBS_BOOST})
+    target_link_libraries(${test_case_name} PRIVATE
+        caosdb::caosdb gtest::gtest grpc::grpc protobuf::protobuf
+    )   
     if("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
         target_link_libraries(${test_case_name} PRIVATE caosdb_grpc)
     endif()
     target_include_directories(${test_case_name}
-        PUBLIC ${CONAN_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
+        PUBLIC  ${CMAKE_CURRENT_SOURCE_DIR})
     if(LINTING)
         set_target_properties(${test_case_name}
             PROPERTIES
-- 
GitLab