From 6e5a6d2abba14cc006953efb3f24d7f4f9892b7e Mon Sep 17 00:00:00 2001 From: fdr400 Date: Tue, 28 Jan 2025 00:38:51 +0300 Subject: [PATCH] Try unify names --- CMakeLists.txt | 3 ++ clickhouse/CMakeLists.txt | 6 +-- cmake/SetupCryptoPP.cmake | 6 +-- cmake/SetupMongoDeps.cmake | 2 - cmake/SetupProtobuf.cmake | 2 +- cmake/SetupRdKafka.cmake | 2 +- cmake/SetupRocksDB.cmake | 2 +- cmake/install/Config.cmake.in | 14 ++++-- cmake/install/userver-clickhouse-config.cmake | 6 +-- cmake/install/userver-core-config.cmake | 17 +++---- cmake/install/userver-kafka-config.cmake | 2 +- cmake/install/userver-mongo-config.cmake | 2 +- cmake/install/userver-mysql-config.cmake | 6 +-- cmake/install/userver-rabbitmq-config.cmake | 6 +-- cmake/install/userver-redis-config.cmake | 6 +-- cmake/install/userver-rocks-config.cmake | 2 +- cmake/install/userver-s3api-config.cmake | 6 +-- cmake/install/userver-universal-config.cmake | 38 +++++++-------- cmake/modules/Findamqpcpp.cmake | 17 +++++++ cmake/modules/Findbson.cmake | 4 ++ cmake/modules/Findclickhouse-cpp.cmake | 4 ++ ...{FindCryptoPP.cmake => Findcryptopp.cmake} | 6 ++- .../{FindHiredis.cmake => Findhiredis.cmake} | 6 ++- ...{FindJemalloc.cmake => Findjemalloc.cmake} | 6 ++- .../{FindLibEv.cmake => Findlibev.cmake} | 6 ++- ...FindNghttp2.cmake => Findlibnghttp2.cmake} | 6 ++- cmake/modules/Findmongoc.cmake | 4 ++ .../{FindPugixml.cmake => Findpugixml.cmake} | 6 ++- ...indlibyamlcpp.cmake => Findyaml-cpp.cmake} | 2 +- .../{Findlibzstd.cmake => Findzstd.cmake} | 5 +- core/CMakeLists.txt | 42 ++++++++--------- kafka/CMakeLists.txt | 2 +- libraries/s3api/CMakeLists.txt | 11 ++--- mongo/CMakeLists.txt | 10 ++-- postgresql/CMakeLists.txt | 2 +- rabbitmq/CMakeLists.txt | 2 +- redis/CMakeLists.txt | 14 ++---- universal/CMakeLists.txt | 46 +++++++++---------- universal/utest/CMakeLists.txt | 2 +- 39 files changed, 167 insertions(+), 164 deletions(-) create mode 100644 cmake/modules/Findamqpcpp.cmake rename cmake/modules/{FindCryptoPP.cmake => Findcryptopp.cmake} (76%) rename cmake/modules/{FindHiredis.cmake => Findhiredis.cmake} (76%) rename cmake/modules/{FindJemalloc.cmake => Findjemalloc.cmake} (81%) rename cmake/modules/{FindLibEv.cmake => Findlibev.cmake} (72%) rename cmake/modules/{FindNghttp2.cmake => Findlibnghttp2.cmake} (67%) rename cmake/modules/{FindPugixml.cmake => Findpugixml.cmake} (72%) rename cmake/modules/{Findlibyamlcpp.cmake => Findyaml-cpp.cmake} (94%) rename cmake/modules/{Findlibzstd.cmake => Findzstd.cmake} (80%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b0f1e92a583f..49534f28ec6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,9 @@ option(USERVER_FEATURE_OTLP "Provide asynchronous OTLP exporters" "${USERVER_LIB set(CMAKE_DEBUG_POSTFIX d) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") +if(USERVER_CONAN AND NOT DEFINED CMAKE_FIND_PACKAGE_PREFER_CONFIG) + set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON) +endif() set(USERVER_USE_STATIC_LIBS_DEFAULT OFF) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0) diff --git a/clickhouse/CMakeLists.txt b/clickhouse/CMakeLists.txt index 5ad66e788c81..962831b56ad8 100644 --- a/clickhouse/CMakeLists.txt +++ b/clickhouse/CMakeLists.txt @@ -1,16 +1,14 @@ project(userver-clickhouse CXX) if (USERVER_CONAN) - find_package(clickhouse-cpp REQUIRED CONFIG) - set(CLICKHOUSE_CPP_TARGET clickhouse-cpp-lib::clickhouse-cpp-lib) + find_package(clickhouse-cpp REQUIRED) else() include(SetupClickhouseCPP) - set(CLICKHOUSE_CPP_TARGET clickhouse-cpp) endif() userver_module(clickhouse SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - LINK_LIBRARIES_PRIVATE "${CLICKHOUSE_CPP_TARGET}" + LINK_LIBRARIES_PRIVATE clickhouse-cpp-lib::clickhouse-cpp-lib UTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_test.cpp" DBTEST_SOURCES diff --git a/cmake/SetupCryptoPP.cmake b/cmake/SetupCryptoPP.cmake index 17e7e8bfdaf1..5d72f7a73a94 100644 --- a/cmake/SetupCryptoPP.cmake +++ b/cmake/SetupCryptoPP.cmake @@ -10,12 +10,12 @@ option( if (NOT USERVER_FORCE_DOWNLOAD_PACKAGES) if (USERVER_DOWNLOAD_PACKAGE_CRYPTOPP) - find_package(CryptoPP QUIET) + find_package(cryptopp QUIET) else() - find_package(CryptoPP REQUIRED) + find_package(cryptopp REQUIRED) endif() - if (CryptoPP_FOUND) + if (cryptopp_FOUND) return() endif() endif() diff --git a/cmake/SetupMongoDeps.cmake b/cmake/SetupMongoDeps.cmake index 55ab17abddf1..0b04a08f3e87 100644 --- a/cmake/SetupMongoDeps.cmake +++ b/cmake/SetupMongoDeps.cmake @@ -6,8 +6,6 @@ if (USERVER_MONGODB_USE_CMAKE_CONFIG) find_package(mongoc-1.0 QUIET CONFIG) if(mongoc-1.0_FOUND) message(STATUS "Mongoc: using config version: (bson: ${bson-1.0_VERSION}, mongoc: ${mongoc-1.0_VERSION})") - add_library(bson ALIAS mongo::bson_static) - add_library(mongoc ALIAS mongo::mongoc_static) return() endif() endif() diff --git a/cmake/SetupProtobuf.cmake b/cmake/SetupProtobuf.cmake index 75b09ad1f9ab..9b56374821c3 100644 --- a/cmake/SetupProtobuf.cmake +++ b/cmake/SetupProtobuf.cmake @@ -25,7 +25,7 @@ function(_userver_set_protobuf_version_category) endfunction() if(USERVER_CONAN) - find_package(Protobuf REQUIRED CONFIG) + find_package(Protobuf REQUIRED) _userver_set_protobuf_version_category() set(PROTOBUF_PROTOC "${Protobuf_PROTOC_EXECUTABLE}") return() diff --git a/cmake/SetupRdKafka.cmake b/cmake/SetupRdKafka.cmake index 76d32b287355..0f322145c64b 100644 --- a/cmake/SetupRdKafka.cmake +++ b/cmake/SetupRdKafka.cmake @@ -8,7 +8,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/SetupCURL.cmake") find_package(OpenSSL REQUIRED) find_package(ZLIB REQUIRED) -find_package(libzstd REQUIRED) +find_package(zstd REQUIRED) find_package(lz4 REQUIRED) find_package(SASL2 REQUIRED) diff --git a/cmake/SetupRocksDB.cmake b/cmake/SetupRocksDB.cmake index 7e2fea89e513..d00436d33c5b 100644 --- a/cmake/SetupRocksDB.cmake +++ b/cmake/SetupRocksDB.cmake @@ -18,7 +18,7 @@ find_package(libgflags REQUIRED) find_package(libsnappy REQUIRED) find_package(ZLIB REQUIRED) find_package(BZip2 REQUIRED) -find_package(libzstd REQUIRED) +find_package(zstd REQUIRED) include(DownloadUsingCPM) diff --git a/cmake/install/Config.cmake.in b/cmake/install/Config.cmake.in index fc04bbcafe3b..a5f433bc0cf7 100644 --- a/cmake/install/Config.cmake.in +++ b/cmake/install/Config.cmake.in @@ -44,11 +44,17 @@ set(USERVER_IMPL_ORIGINAL_CXX_STANDARD @CMAKE_CXX_STANDARD@) set(USERVER_IMPL_FEATURE_JEMALLOC @USERVER_FEATURE_JEMALLOC@) set(USERVER_USE_STATIC_LIBS @USERVER_USE_STATIC_LIBS@) +if(USERVER_CONAN AND NOT DEFINED CMAKE_FIND_PACKAGE_PREFER_CONFIG) + set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON) +endif() + set_property(GLOBAL PROPERTY userver_cmake_dir "${USERVER_CMAKE_DIR}") -if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") - list(PREPEND CMAKE_MODULE_PATH "${USERVER_CMAKE_DIR}/modules") -else() - list(APPEND CMAKE_MODULE_PATH "${USERVER_CMAKE_DIR}/modules") +if(NOT USERVER_CONAN) + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") + list(PREPEND CMAKE_MODULE_PATH "${USERVER_CMAKE_DIR}/modules") + else() + list(APPEND CMAKE_MODULE_PATH "${USERVER_CMAKE_DIR}/modules") + endif() endif() include("${USERVER_CMAKE_DIR}/UserverPreferStaticLibs.cmake") diff --git a/cmake/install/userver-clickhouse-config.cmake b/cmake/install/userver-clickhouse-config.cmake index e4ced6f14980..5e94d7705095 100644 --- a/cmake/install/userver-clickhouse-config.cmake +++ b/cmake/install/userver-clickhouse-config.cmake @@ -8,10 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -if (USERVER_CONAN) - find_package(clickhouse-cpp REQUIRED CONFIG) -else() - find_package(clickhouse-cpp REQUIRED) -endif() +find_package(clickhouse-cpp REQUIRED) set(userver_clickhouse_FOUND TRUE) diff --git a/cmake/install/userver-core-config.cmake b/cmake/install/userver-core-config.cmake index 8dc569706e0b..22ff17d14025 100644 --- a/cmake/install/userver-core-config.cmake +++ b/cmake/install/userver-core-config.cmake @@ -14,20 +14,17 @@ find_package(Boost REQUIRED CONFIG COMPONENTS ) find_package(ZLIB REQUIRED) - -include("${USERVER_CMAKE_DIR}/UserverTestsuite.cmake") +find_package(c-ares REQUIRED) +find_package(libnghttp2 REQUIRED) +find_package(libev REQUIRED) if (USERVER_CONAN) - find_package(c-ares REQUIRED CONFIG) - find_package(libnghttp2 REQUIRED CONFIG) - find_package(libev REQUIRED CONFIG) - find_package(concurrentqueue REQUIRED CONFIG) - find_package(CURL "7.68" REQUIRED CONFIG) + find_package(concurrentqueue REQUIRED) + find_package(CURL "7.68" REQUIRED) else() - find_package(Nghttp2 REQUIRED) - find_package(LibEv REQUIRED) - find_package(c-ares REQUIRED) include("${USERVER_CMAKE_DIR}/SetupCURL.cmake") endif() +include("${USERVER_CMAKE_DIR}/UserverTestsuite.cmake") + set(userver_core_FOUND TRUE) diff --git a/cmake/install/userver-kafka-config.cmake b/cmake/install/userver-kafka-config.cmake index 7aa7ea930a1c..26660304e561 100644 --- a/cmake/install/userver-kafka-config.cmake +++ b/cmake/install/userver-kafka-config.cmake @@ -9,7 +9,7 @@ find_package(userver REQUIRED COMPONENTS ) if(USERVER_CONAN) - find_package(RdKafka REQUIRED CONFIG) + find_package(RdKafka REQUIRED) else() include("${USERVER_CMAKE_DIR}/SetupRdKafka.cmake") endif() diff --git a/cmake/install/userver-mongo-config.cmake b/cmake/install/userver-mongo-config.cmake index cd9c182a6172..c725f5998768 100644 --- a/cmake/install/userver-mongo-config.cmake +++ b/cmake/install/userver-mongo-config.cmake @@ -9,7 +9,7 @@ find_package(userver REQUIRED COMPONENTS ) if (USERVER_CONAN) - find_package(mongoc-1.0 REQUIRED CONFIG) + find_package(mongoc-1.0 REQUIRED) else() include("${USERVER_CMAKE_DIR}/SetupMongoDeps.cmake") endif() diff --git a/cmake/install/userver-mysql-config.cmake b/cmake/install/userver-mysql-config.cmake index edd99ff0721d..f847bdadf866 100644 --- a/cmake/install/userver-mysql-config.cmake +++ b/cmake/install/userver-mysql-config.cmake @@ -8,10 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -if (USERVER_CONAN) - find_package(libmariadb REQUIRED CONFIG) -else() - find_package(libmariadb REQUIRED) -endif() +find_package(libmariadb REQUIRED) set(userver_mysql_FOUND TRUE) diff --git a/cmake/install/userver-rabbitmq-config.cmake b/cmake/install/userver-rabbitmq-config.cmake index e778ecddbb22..e5bbf65ce596 100644 --- a/cmake/install/userver-rabbitmq-config.cmake +++ b/cmake/install/userver-rabbitmq-config.cmake @@ -8,10 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -if(USERVER_CONAN) - find_package(amqpcpp REQUIRED CONFIG) -else() - find_package(amqpcpp REQUIRED) -endif() +find_package(amqpcpp REQUIRED) set(userver_rabbitmq_FOUND TRUE) diff --git a/cmake/install/userver-redis-config.cmake b/cmake/install/userver-redis-config.cmake index 9de2a9bbf2a3..531c2b56869a 100644 --- a/cmake/install/userver-redis-config.cmake +++ b/cmake/install/userver-redis-config.cmake @@ -8,10 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -if (USERVER_CONAN) - find_package(hiredis REQUIRED CONFIG) -else() - find_package(Hiredis REQUIRED) -endif() +find_package(hiredis REQUIRED) set(userver_redis_FOUND TRUE) diff --git a/cmake/install/userver-rocks-config.cmake b/cmake/install/userver-rocks-config.cmake index 31609aeac244..ef80975733e8 100644 --- a/cmake/install/userver-rocks-config.cmake +++ b/cmake/install/userver-rocks-config.cmake @@ -8,6 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -find_package(RocksDB REQUIRED CONFIG) +find_package(RocksDB REQUIRED) set(userver_rocks_FOUND TRUE) diff --git a/cmake/install/userver-s3api-config.cmake b/cmake/install/userver-s3api-config.cmake index d4bcc3b9f714..a9f012aaa74a 100644 --- a/cmake/install/userver-s3api-config.cmake +++ b/cmake/install/userver-s3api-config.cmake @@ -8,11 +8,7 @@ find_package(userver REQUIRED COMPONENTS core ) -if(USERVER_CONAN) - find_package(pugixml REQUIRED CONFIG) -else() - find_package(Pugixml REQUIRED) -endif() +find_package(pugixml REQUIRED) set(userver_s3api_FOUND TRUE) diff --git a/cmake/install/userver-universal-config.cmake b/cmake/install/userver-universal-config.cmake index 273aa704bd27..3296dd71069c 100644 --- a/cmake/install/userver-universal-config.cmake +++ b/cmake/install/userver-universal-config.cmake @@ -29,29 +29,18 @@ if (USERVER_IMPL_FEATURE_JEMALLOC AND NOT USERVER_SANITIZE AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") - if (USERVER_CONAN) - find_package(jemalloc REQUIRED CONFIG) - else() - include("${USERVER_CMAKE_DIR}/modules/FindJemalloc.cmake") - endif() + find_package(jemalloc REQUIRED) endif() -if (USERVER_CONAN) - find_package(fmt REQUIRED CONFIG) - find_package(cctz REQUIRED CONFIG) - find_package(cryptopp REQUIRED CONFIG) - find_package(yaml-cpp REQUIRED CONFIG) - find_package(zstd REQUIRED CONFIG) - find_package(re2 REQUIRED CONFIG) +find_package(fmt REQUIRED) +find_package(cctz REQUIRED) +find_package(re2 REQUIRED) +find_package(cryptopp REQUIRED) +find_package(zstd REQUIRED) +find_package(yaml-cpp REQUIRED) - find_package(RapidJSON REQUIRED CONFIG) -else() - find_package(fmt REQUIRED) - find_package(cctz REQUIRED) - find_package(CryptoPP REQUIRED) - find_package(libyamlcpp REQUIRED) - find_package(libzstd REQUIRED) - find_package(re2 REQUIRED) +if (USERVER_CONAN) + find_package(RapidJSON REQUIRED) endif() include("${USERVER_CMAKE_DIR}/AddGoogleTests.cmake") @@ -63,8 +52,13 @@ include("${USERVER_CMAKE_DIR}/UserverEmbedFile.cmake") userver_setup_environment() _userver_make_sanitize_blacklist() -include("${USERVER_CMAKE_DIR}/SetupGTest.cmake") -include("${USERVER_CMAKE_DIR}/SetupGBench.cmake") +if(USERVER_CONAN) + find_package(GTest REQUIRED) + find_package(benchmark REQUIRED) +else() + include("${USERVER_CMAKE_DIR}/SetupGTest.cmake") + include("${USERVER_CMAKE_DIR}/SetupGBench.cmake") +endif() if(NOT USERVER_IMPL_ORIGINAL_CXX_STANDARD STREQUAL CMAKE_CXX_STANDARD) target_compile_definitions(userver::universal INTERFACE diff --git a/cmake/modules/Findamqpcpp.cmake b/cmake/modules/Findamqpcpp.cmake new file mode 100644 index 000000000000..f90a157ed1ef --- /dev/null +++ b/cmake/modules/Findamqpcpp.cmake @@ -0,0 +1,17 @@ +_userver_module_begin( + NAME amqpcpp + VERSION 4.3.18 + FORMULA_NAMES amqp-cpp + PACMAN_NAMES amqp-cpp + PKG_CONFIG_NAMES amqpcpp +) + +_userver_module_find_include( + NAMES amqpcpp.h +) + +_userver_module_find_library( + NAMES amqpcpp +) + +_userver_module_end() diff --git a/cmake/modules/Findbson.cmake b/cmake/modules/Findbson.cmake index 0f98ba186cca..40db7b50b262 100644 --- a/cmake/modules/Findbson.cmake +++ b/cmake/modules/Findbson.cmake @@ -25,3 +25,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET mongo::bson_static) + add_library(mongo::bson_static ALIAS bson) +endif() diff --git a/cmake/modules/Findclickhouse-cpp.cmake b/cmake/modules/Findclickhouse-cpp.cmake index 8c01568d0a3c..384d6875cac1 100644 --- a/cmake/modules/Findclickhouse-cpp.cmake +++ b/cmake/modules/Findclickhouse-cpp.cmake @@ -25,3 +25,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") endif() _userver_module_end() + +if(NOT TARGET clickhouse-cpp-lib::clickhouse-cpp-lib) + add_library(clickhouse-cpp-lib::clickhouse-cpp-lib ALIAS clickhouse-cpp) +endif() diff --git a/cmake/modules/FindCryptoPP.cmake b/cmake/modules/Findcryptopp.cmake similarity index 76% rename from cmake/modules/FindCryptoPP.cmake rename to cmake/modules/Findcryptopp.cmake index cad086daf05c..6e0136e7d93e 100644 --- a/cmake/modules/FindCryptoPP.cmake +++ b/cmake/modules/Findcryptopp.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME CryptoPP + NAME cryptopp DEBIAN_NAMES libcrypto++-dev FORMULA_NAMES cryptopp RPM_NAMES cryptopp-devel @@ -18,3 +18,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET cryptopp::cryptopp) + add_library(cryptopp::cryptopp ALIAS cryptopp) +endif() diff --git a/cmake/modules/FindHiredis.cmake b/cmake/modules/Findhiredis.cmake similarity index 76% rename from cmake/modules/FindHiredis.cmake rename to cmake/modules/Findhiredis.cmake index 238dfc1a4fa6..1fc971fb83ff 100644 --- a/cmake/modules/FindHiredis.cmake +++ b/cmake/modules/Findhiredis.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME Hiredis + NAME hiredis VERSION 0.13.3 DEBIAN_NAMES libhiredis-dev FORMULA_NAMES hiredis @@ -18,3 +18,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET hiredis::hiredis) + add_library(hiredis::hiredis ALIAS hiredis) +endif() diff --git a/cmake/modules/FindJemalloc.cmake b/cmake/modules/Findjemalloc.cmake similarity index 81% rename from cmake/modules/FindJemalloc.cmake rename to cmake/modules/Findjemalloc.cmake index eb1ab5c49c22..590a6f9ce679 100644 --- a/cmake/modules/FindJemalloc.cmake +++ b/cmake/modules/Findjemalloc.cmake @@ -6,7 +6,7 @@ if(USERVER_SANITIZE) endif() _userver_module_begin( - NAME Jemalloc + NAME jemalloc DEBIAN_NAMES libjemalloc-dev FORMULA_NAMES jemalloc RPM_NAMES jemalloc-devel @@ -23,3 +23,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET jemalloc::jemalloc) + add_library(jemalloc::jemalloc ALIAS jemalloc) +endif() diff --git a/cmake/modules/FindLibEv.cmake b/cmake/modules/Findlibev.cmake similarity index 72% rename from cmake/modules/FindLibEv.cmake rename to cmake/modules/Findlibev.cmake index e25cbf40b3e0..b3501e73683f 100644 --- a/cmake/modules/FindLibEv.cmake +++ b/cmake/modules/Findlibev.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME LibEv + NAME libev DEBIAN_NAMES libev-dev FORMULA_NAMES libev RPM_NAMES libev-devel @@ -15,3 +15,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET libev::libev) + add_library(libev::libev ALIAS libev) +endif() diff --git a/cmake/modules/FindNghttp2.cmake b/cmake/modules/Findlibnghttp2.cmake similarity index 67% rename from cmake/modules/FindNghttp2.cmake rename to cmake/modules/Findlibnghttp2.cmake index 268463e7b993..0267d6a3cefc 100644 --- a/cmake/modules/FindNghttp2.cmake +++ b/cmake/modules/Findlibnghttp2.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME Nghttp2 + NAME libnghttp2 DEBIAN_NAMES libnghttp2-dev FORMULA_NAMES nghttp2 PACMAN_NAMES libnghttp2 @@ -14,3 +14,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET libnghttp2::nghttp2) + add_library(libnghttp2::nghttp2 ALIAS libnghttp2) +endif() diff --git a/cmake/modules/Findmongoc.cmake b/cmake/modules/Findmongoc.cmake index b14e1a83ada8..ba5888725e8a 100644 --- a/cmake/modules/Findmongoc.cmake +++ b/cmake/modules/Findmongoc.cmake @@ -25,3 +25,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET mongo::mongoc_static) + add_library(mongo::mongoc_static ALIAS mongoc) +endif() diff --git a/cmake/modules/FindPugixml.cmake b/cmake/modules/Findpugixml.cmake similarity index 72% rename from cmake/modules/FindPugixml.cmake rename to cmake/modules/Findpugixml.cmake index 7bdd0660443d..aca656dd5226 100644 --- a/cmake/modules/FindPugixml.cmake +++ b/cmake/modules/Findpugixml.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME Pugixml + NAME pugixml DEBIAN_NAMES libpugixml-dev FORMULA_NAMES pugixml PACMAN_NAMES pugixml @@ -15,3 +15,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET pugixml::pugixml) + add_library(pugixml::pugixml ALIAS pugixml) +endif() diff --git a/cmake/modules/Findlibyamlcpp.cmake b/cmake/modules/Findyaml-cpp.cmake similarity index 94% rename from cmake/modules/Findlibyamlcpp.cmake rename to cmake/modules/Findyaml-cpp.cmake index 3c12d660ed3c..f6c5b4998499 100644 --- a/cmake/modules/Findlibyamlcpp.cmake +++ b/cmake/modules/Findyaml-cpp.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME libyamlcpp + NAME yaml-cpp DEBIAN_NAMES libyaml-cpp-dev FORMULA_NAMES yaml-cpp PACMAN_NAMES yaml-cpp diff --git a/cmake/modules/Findlibzstd.cmake b/cmake/modules/Findzstd.cmake similarity index 80% rename from cmake/modules/Findlibzstd.cmake rename to cmake/modules/Findzstd.cmake index bff352056bc4..57ffa9987e64 100644 --- a/cmake/modules/Findlibzstd.cmake +++ b/cmake/modules/Findzstd.cmake @@ -1,5 +1,5 @@ _userver_module_begin( - NAME libzstd + NAME zstd DEBIAN_NAMES libzstd-dev FORMULA_NAMES zstd RPM_NAMES libzstd-dev @@ -22,6 +22,5 @@ _userver_module_find_library( _userver_module_end() if(NOT TARGET zstd::zstd) - add_library(zstd::zstd ALIAS libzstd) + add_library(zstd::zstd ALIAS zstd) endif() -add_library(zstd ALIAS libzstd) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 6b9b76ff4856..a4360d1468ea 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -54,23 +54,23 @@ find_package(Boost REQUIRED CONFIG COMPONENTS find_package_required(ZLIB "zlib1g-dev") find_package(Iconv REQUIRED) + _userver_macos_set_default_dir(OPENSSL_ROOT_DIR "brew;--prefix;openssl") find_package_required(OpenSSL "libssl-dev") +find_package(libnghttp2 REQUIRED) +find_package(libev REQUIRED) + if (USERVER_CONAN) - find_package(c-ares REQUIRED CONFIG) - find_package(CURL REQUIRED CONFIG) - find_package(cryptopp REQUIRED CONFIG) - find_package(libnghttp2 REQUIRED CONFIG) - find_package(libev REQUIRED CONFIG) + find_package(c-ares REQUIRED) + find_package(CURL REQUIRED) + find_package(cryptopp REQUIRED) - find_package(concurrentqueue REQUIRED CONFIG) + find_package(concurrentqueue REQUIRED) else() include(SetupCAres) include(SetupCURL) include(SetupCryptoPP) - find_package(Nghttp2 REQUIRED) - find_package(LibEv REQUIRED) endif() add_library(${PROJECT_NAME} STATIC ${SOURCES}) @@ -162,26 +162,20 @@ else() ) endif() +target_link_libraries(${PROJECT_NAME} + PUBLIC + c-ares::cares + PRIVATE + cryptopp::cryptopp + libev::libev + libnghttp2::nghttp2 +) + if (USERVER_CONAN) target_link_libraries(${PROJECT_NAME} - PUBLIC - c-ares::cares - concurrentqueue::concurrentqueue - PRIVATE - cryptopp::cryptopp - libev::libev - libnghttp2::nghttp2 + PUBLIC concurrentqueue::concurrentqueue ) else() - target_link_libraries(${PROJECT_NAME} - PUBLIC - c-ares::cares - PRIVATE - CryptoPP - Nghttp2 - LibEv - ) - target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC $ ) diff --git a/kafka/CMakeLists.txt b/kafka/CMakeLists.txt index 27f37b7a25b5..2171472cb540 100644 --- a/kafka/CMakeLists.txt +++ b/kafka/CMakeLists.txt @@ -1,7 +1,7 @@ project(userver-kafka CXX) if(USERVER_CONAN) - find_package(RdKafka REQUIRED CONFIG) + find_package(RdKafka REQUIRED) else() include(SetupRdKafka) endif() diff --git a/libraries/s3api/CMakeLists.txt b/libraries/s3api/CMakeLists.txt index 4d05cffb916a..79502e3ffaa9 100644 --- a/libraries/s3api/CMakeLists.txt +++ b/libraries/s3api/CMakeLists.txt @@ -1,20 +1,15 @@ project(userver-s3api CXX) -if(USERVER_CONAN) - find_package(pugixml REQUIRED CONFIG) - add_library(Pugixml ALIAS pugixml::pugixml) -else() - find_package(Pugixml REQUIRED) -endif() +find_package(pugixml REQUIRED) userver_module(s3api SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - LINK_LIBRARIES_PRIVATE Pugixml + LINK_LIBRARIES_PRIVATE pugixml::pugixml UTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_test.cpp" ) _userver_directory_install(COMPONENT s3api FILES - "${USERVER_ROOT_DIR}/cmake/modules/FindPugixml.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findpugixml.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules" ) diff --git a/mongo/CMakeLists.txt b/mongo/CMakeLists.txt index b34f1e1ad0b5..e992a30a19f7 100644 --- a/mongo/CMakeLists.txt +++ b/mongo/CMakeLists.txt @@ -1,19 +1,15 @@ project(userver-mongo CXX) if (USERVER_CONAN) - find_package(mongoc-1.0 REQUIRED CONFIG) - set_target_properties(mongo::bson_static PROPERTIES IMPORTED_GLOBAL TRUE) - set_target_properties(mongo::mongoc_static PROPERTIES IMPORTED_GLOBAL TRUE) - add_library(bson ALIAS mongo::bson_static) - add_library(mongoc ALIAS mongo::mongoc_static) + find_package(mongoc-1.0 REQUIRED) else() include(SetupMongoDeps) endif() userver_module(mongo SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - LINK_LIBRARIES bson - LINK_LIBRARIES_PRIVATE mongoc + LINK_LIBRARIES mongo::bson_static + LINK_LIBRARIES_PRIVATE mongo::mongoc_static UTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_test.cpp" DBTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_mongotest.cpp" diff --git a/postgresql/CMakeLists.txt b/postgresql/CMakeLists.txt index 6f31ea25ce74..90644bc5fd69 100644 --- a/postgresql/CMakeLists.txt +++ b/postgresql/CMakeLists.txt @@ -13,7 +13,7 @@ else() ) if(USERVER_CONAN) - find_package(PostgreSQL REQUIRED CONFIG) + find_package(PostgreSQL REQUIRED) else() find_library(PostgreSQL_LIBRARY NAMES libpq.so libpq.dylib REQUIRED) find_package(PostgreSQL REQUIRED) diff --git a/rabbitmq/CMakeLists.txt b/rabbitmq/CMakeLists.txt index c832e66005c6..511bf90cb1ab 100644 --- a/rabbitmq/CMakeLists.txt +++ b/rabbitmq/CMakeLists.txt @@ -1,7 +1,7 @@ project(userver-rabbitmq CXX) if (USERVER_CONAN) - find_package(amqpcpp REQUIRED CONFIG) + find_package(amqpcpp REQUIRED) else() include(SetupAmqpCPP) endif() diff --git a/redis/CMakeLists.txt b/redis/CMakeLists.txt index 3bc6df5877e8..f197ece2d607 100644 --- a/redis/CMakeLists.txt +++ b/redis/CMakeLists.txt @@ -1,8 +1,10 @@ project(userver-redis CXX) +find_package(hiredis REQUIRED) + userver_module(redis SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - + LINK_LIBRARIES hiredis::hiredis UTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_test.cpp" UTEST_LINK_LIBRARIES ${PROJECT_NAME}-utest DBTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_redistest.cpp" @@ -34,14 +36,6 @@ if(USERVER_FEATURE_REDIS_TLS) add_compile_definitions(USERVER_FEATURE_REDIS_TLS=1) endif() -if (USERVER_CONAN) - find_package(hiredis REQUIRED CONFIG) - target_link_libraries(${PROJECT_NAME} PUBLIC hiredis::hiredis) -else() - find_package(Hiredis REQUIRED) - target_link_libraries(${PROJECT_NAME} PUBLIC Hiredis) -endif() - if (USERVER_FEATURE_REDIS_TLS) target_link_libraries(${PROJECT_NAME} PUBLIC hiredis_ssl) endif() @@ -50,7 +44,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ) _userver_directory_install(COMPONENT redis FILES - "${USERVER_ROOT_DIR}/cmake/modules/FindHiredis.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findhiredis.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules ) diff --git a/universal/CMakeLists.txt b/universal/CMakeLists.txt index d45d9880d7dc..10215fcf2896 100644 --- a/universal/CMakeLists.txt +++ b/universal/CMakeLists.txt @@ -55,21 +55,20 @@ endif() find_package_required(OpenSSL "libssl-dev") +find_package(yaml-cpp REQUIRED) +find_package(zstd REQUIRED) + if (USERVER_CONAN) - find_package(cryptopp REQUIRED CONFIG) - find_package(yaml-cpp REQUIRED CONFIG) - find_package(fmt REQUIRED CONFIG) - find_package(cctz REQUIRED CONFIG) - find_package(zstd REQUIRED CONFIG) + find_package(cryptopp REQUIRED) + find_package(fmt REQUIRED) + find_package(cctz REQUIRED) - find_package(RapidJSON REQUIRED CONFIG) + find_package(RapidJSON REQUIRED) target_compile_definitions(rapidjson INTERFACE RAPIDJSON_HAS_STDSTRING) else() include(SetupCryptoPP) - find_package_required(libyamlcpp "libyaml-cpp-dev") include(SetupFmt) include(SetupCCTZ) - find_package(libzstd REQUIRED) endif() # Compiler flags for userver code. Flags for all the code @@ -174,13 +173,8 @@ target_compile_definitions(${PROJECT_NAME} PUBLIC # https://github.com/jemalloc/jemalloc/issues/820 if (USERVER_FEATURE_JEMALLOC AND NOT USERVER_SANITIZE AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") - if (USERVER_CONAN) - find_package(jemalloc REQUIRED CONFIG) - target_link_libraries(${PROJECT_NAME} PUBLIC jemalloc::jemalloc) - else() - find_package_required(Jemalloc "libjemalloc-dev") - target_link_libraries(${PROJECT_NAME} PUBLIC Jemalloc) - endif() + find_package(jemalloc REQUIRED) + target_link_libraries(${PROJECT_NAME} PUBLIC jemalloc::jemalloc) endif() if(NOT USERVER_CONAN) @@ -191,7 +185,7 @@ if(NOT USERVER_CONAN) endif() if(USERVER_CONAN) - find_package(re2 REQUIRED CONFIG) + find_package(re2 REQUIRED) else() include(SetupRe2) endif() @@ -276,9 +270,9 @@ else() cctz userver-stacktrace PRIVATE - libyamlcpp - libzstd - CryptoPP + yaml-cpp + zstd::zstd + cryptopp::cryptopp ) if(Boost_USE_STATIC_LIBS AND Boost_FOUND AND Boost_VERSION VERSION_LESS 1.75) @@ -326,13 +320,15 @@ if (USERVER_FEATURE_UTEST) add_library(${PROJECT_NAME}-internal-ubench INTERFACE) if (USERVER_CONAN) - find_package(benchmark REQUIRED CONFIG) + find_package(benchmark REQUIRED) + set(_benchmark_target benchmark::benchmark_main) else() include(SetupGBench) + set(_benchmark_target benchmark::benchmark) endif() target_link_libraries(${PROJECT_NAME}-internal-ubench INTERFACE - benchmark::benchmark + ${_benchmark_target} ${PROJECT_NAME} ) endif() @@ -413,13 +409,13 @@ _userver_directory_install(COMPONENT universal FILES DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/userver ) _userver_directory_install(COMPONENT universal FILES - "${USERVER_ROOT_DIR}/cmake/modules/FindCryptoPP.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/Findlibyamlcpp.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/Findlibzstd.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findcryptopp.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findyaml-cpp.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findstd.cmake" "${USERVER_ROOT_DIR}/cmake/modules/Findcctz.cmake" "${USERVER_ROOT_DIR}/cmake/modules/Findre2.cmake" "${USERVER_ROOT_DIR}/cmake/modules/Findfmt.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/FindJemalloc.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findjemalloc.cmake" "${USERVER_ROOT_DIR}/cmake/modules/FindUserverGBench.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules ) diff --git a/universal/utest/CMakeLists.txt b/universal/utest/CMakeLists.txt index 5b69530da94f..e1b6614c3179 100644 --- a/universal/utest/CMakeLists.txt +++ b/universal/utest/CMakeLists.txt @@ -1,7 +1,7 @@ project(userver-universal-utest CXX) if(USERVER_CONAN) - find_package(GTest REQUIRED CONFIG) + find_package(GTest REQUIRED) else() include(SetupGTest) endif()