diff --git a/.github/workflows/alpine.yml b/.github/workflows/alpine.yml index 73d95d0dcca5..04bc31941ad7 100644 --- a/.github/workflows/alpine.yml +++ b/.github/workflows/alpine.yml @@ -25,6 +25,25 @@ jobs: name: ubuntu-24.04 (build-only) runs-on: ubuntu-24.04 + env: + CMAKE_PROGRAM_PATH: /usr/lib/llvm17/bin + CMAKE_FLAGS: >- + -DCMAKE_BUILD_TYPE=Debug + -DUSERVER_USE_LD=lld + -DUSERVER_NO_WERROR=OFF + -DUSERVER_BUILD_ALL_COMPONENTS=1 + -DUSERVER_BUILD_SAMPLES=1 + -DUSERVER_BUILD_TESTS=1 + -DUSERVER_FEATURE_JEMALLOC=OFF + -DUSERVER_FEATURE_KAFKA=OFF + -DUSERVER_FEATURE_CLICKHOUSE=OFF + -DUSERVER_FEATURE_STACKTRACE=OFF + -DUSERVER_FEATURE_PATCH_LIBPQ=OFF + -DUSERVER_DISABLE_RSEQ_ACCELERATION=YES + -DUSERVER_FORCE_DOWNLOAD_ABSEIL=1 + -DUSERVER_FORCE_DOWNLOAD_PROTOBUF=1 + -DUSERVER_FORCE_DOWNLOAD_GRPC=1 + steps: - uses: actions/checkout@v4 with: @@ -88,25 +107,13 @@ jobs: shell: alpine.sh --root {0} run: | pwd - CMAKE_PROGRAM_PATH=/usr/lib/llvm17/bin/ \ - cmake -S . -B build_debug \ - -DCMAKE_BUILD_TYPE=Debug \ - -DUSERVER_USE_LD=lld \ - -DUSERVER_NO_WERROR=OFF \ - -DUSERVER_BUILD_ALL_COMPONENTS=1 \ - -DUSERVER_BUILD_SAMPLES=1 \ - -DUSERVER_BUILD_TESTS=1 \ - -DUSERVER_FEATURE_JEMALLOC=OFF \ - -DUSERVER_FEATURE_KAFKA=OFF \ - -DUSERVER_FEATURE_CLICKHOUSE=OFF \ - -DUSERVER_FEATURE_STACKTRACE=OFF \ - -DUSERVER_FEATURE_PATCH_LIBPQ=OFF \ - -DUSERVER_DOWNLOAD_PACKAGE_PROTOBUF=ON \ - -DUSERVER_DISABLE_RSEQ_ACCELERATION=YES \ - -DUSERVER_FORCE_DOWNLOAD_RE2=1 \ - -DUSERVER_FORCE_DOWNLOAD_ABSEIL=1 \ - -DUSERVER_FORCE_DOWNLOAD_PROTOBUF=1 \ - -DUSERVER_FORCE_DOWNLOAD_GRPC=1 \ + cmake -S . -B build_debug $CMAKE_FLAGS + + - name: Reconfigure cmake + shell: alpine.sh --root {0} + run: | + pwd + cmake -S . -B build_debug $CMAKE_FLAGS - name: Compile shell: alpine.sh --root {0} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00a47313b119..c5aa158394f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -245,6 +245,10 @@ jobs: run: | cmake -S . -B build_debug ${{matrix.cmake-flags}} + - name: Reconfigure cmake + run: | + cmake -S . -B build_debug ${{matrix.cmake-flags}} + - name: Run clang-tidy if: matrix.info == 'clang-14 + debug + sanitize addr+ub' run: | diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 6f5a2fac97f4..5b46b27a6b08 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -114,14 +114,21 @@ jobs: run: docker-compose -f .github/docker-compose.yml run --rm ${{ matrix.image }} bash -c 'ccache -M 2.0GB && ccache -s -v' - - name: CMake + - name: Run cmake run: >- docker-compose -f .github/docker-compose.yml run --rm ${{ matrix.image }} bash -c 'cd /userver && cmake -DUSERVER_GOOGLE_COMMON_PROTOS=/app/api-common-protos ${{ matrix.cmake-flags }} -B./build -S./' - - name: Build + - name: Reconfigure cmake + run: >- + docker-compose -f .github/docker-compose.yml + run --rm ${{ matrix.image }} bash -c + 'cd /userver && cmake -DUSERVER_GOOGLE_COMMON_PROTOS=/app/api-common-protos + ${{ matrix.cmake-flags }} -B./build -S./' + + - name: Compile run: >- docker-compose -f .github/docker-compose.yml run --rm ${{ matrix.image }} bash -c diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 1b6875e29cc5..5a7be4489ed9 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -84,6 +84,10 @@ jobs: run: | cmake -S./ -B./build_debug -DUSERVER_PYTHON_PATH=$(brew --prefix)/bin/python3.11 $CMAKE_FLAGS + - name: Reconfigure cmake + run: | + cmake -S./ -B./build_debug -DUSERVER_PYTHON_PATH=$(brew --prefix)/bin/python3.11 $CMAKE_FLAGS + - name: Compile run: | cmake --build build_debug -j$(nproc) -- -k 1 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/ModuleHelpers.cmake b/cmake/ModuleHelpers.cmake index 261e291a87ea..c4a6be07c92b 100644 --- a/cmake/ModuleHelpers.cmake +++ b/cmake/ModuleHelpers.cmake @@ -324,12 +324,12 @@ macro(_userver_module_end) add_library("${name}" INTERFACE IMPORTED GLOBAL) if(NOT "${${includes_variable}}" STREQUAL "") - target_include_directories("${name}" INTERFACE ${${includes_variable}}) + set_target_properties("${name}" PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${${includes_variable}}") message(STATUS "${name} include directories: ${${includes_variable}}") endif() if(NOT "${${libraries_variable}}" STREQUAL "") - target_link_libraries("${name}" INTERFACE ${${libraries_variable}}) + set_target_properties("${name}" PROPERTIES INTERFACE_LINK_LIBRARIES "${${libraries_variable}}") message(STATUS "${name} libraries: ${${libraries_variable}}") endif() endif() diff --git a/cmake/SetupBrotli.cmake b/cmake/SetupBrotli.cmake index e3715af7c50c..6572e2d5815d 100644 --- a/cmake/SetupBrotli.cmake +++ b/cmake/SetupBrotli.cmake @@ -10,12 +10,6 @@ if (NOT USERVER_FORCE_DOWNLOAD_PACKAGES) endif() if (Brotli_FOUND) - if(NOT TARGET Brotli::dec) - add_library(Brotli::dec ALIAS brotlidec) - endif() - if(NOT TARGET Brotli::enc) - add_library(Brotli::enc ALIAS brotlienc) - endif() return() endif() endif() diff --git a/cmake/SetupCAres.cmake b/cmake/SetupCAres.cmake index 660371918c89..407ac8d334dd 100644 --- a/cmake/SetupCAres.cmake +++ b/cmake/SetupCAres.cmake @@ -8,9 +8,6 @@ if (NOT USERVER_FORCE_DOWNLOAD_PACKAGES) endif() if (c-ares_FOUND) - if(NOT TARGET c-ares::cares) - add_library(c-ares::cares ALIAS c-ares) - endif() return() endif() endif() diff --git a/cmake/SetupClickhouseCPP.cmake b/cmake/SetupClickhouseCPP.cmake index 1716d39e5aa9..dbacb3d8308f 100644 --- a/cmake/SetupClickhouseCPP.cmake +++ b/cmake/SetupClickhouseCPP.cmake @@ -34,4 +34,6 @@ CPMAddPackage( "DEBUG_DEPENDENCIES OFF" ) -add_library(clickhouse-cpp ALIAS clickhouse-cpp-lib) +if(NOT TARGET clickhouse-cpp-lib::clickhouse-cpp-lib) + add_library(clickhouse-cpp-lib::clickhouse-cpp-lib ALIAS clickhouse-cpp-lib) +endif() 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/SetupFmt.cmake b/cmake/SetupFmt.cmake index 38e1bcf0dd6f..ae61a0442522 100644 --- a/cmake/SetupFmt.cmake +++ b/cmake/SetupFmt.cmake @@ -8,9 +8,6 @@ if (NOT USERVER_FORCE_DOWNLOAD_PACKAGES) endif() if (fmt_FOUND) - if(NOT TARGET fmt) - add_library(fmt ALIAS fmt::fmt) - endif() return() endif() endif() diff --git a/cmake/SetupGBench.cmake b/cmake/SetupGBench.cmake index 6e5943ebc37f..6fb9c4823271 100644 --- a/cmake/SetupGBench.cmake +++ b/cmake/SetupGBench.cmake @@ -12,9 +12,6 @@ if (NOT USERVER_FORCE_DOWNLOAD_PACKAGES) endif() if (UserverGBench_FOUND) - if (NOT TARGET benchmark::benchmark) - add_library(benchmark::benchmark ALIAS UserverGBench) # Unify link names - endif() 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 b3082de16ee0..d00436d33c5b 100644 --- a/cmake/SetupRocksDB.cmake +++ b/cmake/SetupRocksDB.cmake @@ -18,12 +18,12 @@ 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) CPMAddPackage( - NAME rocksdb + NAME RocksDB GITHUB_REPOSITORY facebook/rocksdb GIT_TAG v9.7.4 OPTIONS @@ -41,4 +41,6 @@ CPMAddPackage( ) mark_targets_as_system("${rocksdb_SOURCE_DIR}") -add_library(RocksDB::rocksdb ALIAS rocksdb) +if(NOT TARGET RocksDB::rocksdb) + add_library(RocksDB::rocksdb ALIAS rocksdb) +endif() diff --git a/cmake/SetupYdbCppSDK.cmake b/cmake/SetupYdbCppSDK.cmake index a69715b09444..cbf78f762903 100644 --- a/cmake/SetupYdbCppSDK.cmake +++ b/cmake/SetupYdbCppSDK.cmake @@ -38,6 +38,7 @@ CPMAddPackage( "Brotli_VERSION ${Brotli_VERSION}" "RAPIDJSON_INCLUDE_DIRS ${RAPIDJSON_INCLUDE_DIRS}" "YDB_SDK_GOOGLE_COMMON_PROTOS_TARGET ${YDB_SDK_GOOGLE_COMMON_PROTOS_TARGET}" + "YDB_SDK_EXAMPLES OFF" ) list(APPEND ydb-cpp-sdk_INCLUDE_DIRS diff --git a/cmake/install/Config.cmake.in b/cmake/install/Config.cmake.in index e14b18eeb56e..a5f433bc0cf7 100644 --- a/cmake/install/Config.cmake.in +++ b/cmake/install/Config.cmake.in @@ -44,8 +44,18 @@ 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}") -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 531bc79e68f2..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() - include("${USERVER_CMAKE_DIR}/modules/Findclickhouse-cpp.cmake") -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 dabd8c4d4c1e..22ff17d14025 100644 --- a/cmake/install/userver-core-config.cmake +++ b/cmake/install/userver-core-config.cmake @@ -14,23 +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(concurrentqueue REQUIRED) find_package(CURL "7.68" REQUIRED) else() - find_package(Nghttp2 REQUIRED) - find_package(LibEv REQUIRED) - find_package(c-ares REQUIRED) - if (c-ares_FOUND AND NOT TARGET c-ares::cares) - add_library(c-ares::cares ALIAS c-ares) - endif() 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 687e4f26a8d9..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() - include("${USERVER_CMAKE_DIR}/modules/Findlibmariadb.cmake") -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 81e86365c836..e5bbf65ce596 100644 --- a/cmake/install/userver-rabbitmq-config.cmake +++ b/cmake/install/userver-rabbitmq-config.cmake @@ -8,6 +8,6 @@ find_package(userver REQUIRED COMPONENTS core ) -include("${USERVER_CMAKE_DIR}/SetupAmqpCPP.cmake") +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 642fa1decffe..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() - include("${USERVER_CMAKE_DIR}/modules/FindHiredis.cmake") -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 87ee5fc54a82..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 ) -include("${USERVER_CMAKE_DIR}/modules/FindRocksDB.cmake") +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 08133fef7eaf..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() - include("${USERVER_CMAKE_DIR}/modules/FindPugixml.cmake") -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 970ad7e01293..3296dd71069c 100644 --- a/cmake/install/userver-universal-config.cmake +++ b/cmake/install/userver-universal-config.cmake @@ -6,7 +6,7 @@ endif() include("${USERVER_CMAKE_DIR}/ModuleHelpers.cmake") -find_package(Threads) +find_package(Threads REQUIRED) find_package(Boost REQUIRED CONFIG COMPONENTS program_options filesystem @@ -25,36 +25,22 @@ endif() _userver_macos_set_default_dir(OPENSSL_ROOT_DIR "brew;--prefix;openssl") find_package(OpenSSL REQUIRED) -find_package(fmt "8.1.1" REQUIRED) -if(NOT TARGET fmt) - add_library(fmt ALIAS fmt::fmt) -endif() - -find_package(cctz REQUIRED) - 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() - find_package(Jemalloc REQUIRED) - endif() + find_package(jemalloc REQUIRED) endif() -if (USERVER_CONAN) - 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(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") @@ -66,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/FindBrotli.cmake b/cmake/modules/FindBrotli.cmake index 84639052621f..7cedf54c056f 100644 --- a/cmake/modules/FindBrotli.cmake +++ b/cmake/modules/FindBrotli.cmake @@ -22,3 +22,10 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET Brotli::dec) + add_library(Brotli::dec ALIAS brotlidec) +endif() +if(NOT TARGET Brotli::enc) + add_library(Brotli::enc ALIAS brotlienc) +endif() diff --git a/cmake/modules/FindRocksDB.cmake b/cmake/modules/FindRocksDB.cmake deleted file mode 100644 index 30ed4593dd07..000000000000 --- a/cmake/modules/FindRocksDB.cmake +++ /dev/null @@ -1,18 +0,0 @@ -_userver_module_begin( - NAME RocksDB - VERSION 8.9.1 - DEBIAN_NAMES librocksdb-dev - FORMULA_NAMES rocksdb - PACMAN_NAMES rocksdb - PKG_CONFIG_NAMES rocksdb -) - -_userver_module_find_include( - NAMES rocksdb/db.h -) - -_userver_module_find_library( - NAMES rocksdb -) - -_userver_module_end() diff --git a/cmake/modules/FindUserverGBench.cmake b/cmake/modules/FindUserverGBench.cmake index a656e7e67198..bdf293e466ee 100644 --- a/cmake/modules/FindUserverGBench.cmake +++ b/cmake/modules/FindUserverGBench.cmake @@ -21,3 +21,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET benchmark::benchmark) + add_library(benchmark::benchmark ALIAS UserverGBench) +endif() diff --git a/cmake/modules/Findamqpcpp.cmake b/cmake/modules/Findamqpcpp.cmake new file mode 100644 index 000000000000..e28a00cdc8e5 --- /dev/null +++ b/cmake/modules/Findamqpcpp.cmake @@ -0,0 +1,17 @@ +_userver_module_begin( + NAME amqpcpp + VERSION 4.3.15 + 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/Findc-ares.cmake b/cmake/modules/Findc-ares.cmake index cbb7f856cc26..85a60821532c 100644 --- a/cmake/modules/Findc-ares.cmake +++ b/cmake/modules/Findc-ares.cmake @@ -17,3 +17,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(c-ares_FOUND AND NOT TARGET c-ares::cares) + add_library(c-ares::cares ALIAS c-ares) +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/Findfmt.cmake b/cmake/modules/Findfmt.cmake index ebba6fc9dd3d..b1f5be56ef19 100644 --- a/cmake/modules/Findfmt.cmake +++ b/cmake/modules/Findfmt.cmake @@ -1,6 +1,6 @@ _userver_module_begin( NAME fmt - VERSION 7.1 + VERSION 8.1.1 DEBIAN_NAMES libfmt-dev FORMULA_NAMES fmt RPM_NAMES fmt-devel @@ -17,3 +17,7 @@ _userver_module_find_library( ) _userver_module_end() + +if(NOT TARGET fmt) + add_library(fmt ALIAS fmt::fmt) +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/Findlz4.cmake b/cmake/modules/Findlz4.cmake index 7f557b2ef4d8..f33cc7cc0598 100644 --- a/cmake/modules/Findlz4.cmake +++ b/cmake/modules/Findlz4.cmake @@ -19,3 +19,6 @@ _userver_module_end() if(NOT TARGET lz4::lz4) add_library(lz4::lz4 ALIAS lz4) endif() +if(NOT TARGET LZ4::LZ4) + add_library(LZ4::LZ4 ALIAS lz4) +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..f33fa1a681ea 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 $ ) @@ -303,8 +297,8 @@ _userver_directory_install(COMPONENT core FILES ) _userver_directory_install(COMPONENT core FILES "${USERVER_ROOT_DIR}/cmake/modules/Findc-ares.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/FindNghttp2.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/FindLibEv.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findlibnghttp2.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findlibev.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules ) 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 206ebd053ec8..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() @@ -16,8 +16,8 @@ userver_module(rabbitmq _userver_directory_install( COMPONENT rabbitmq - FILES "${USERVER_ROOT_DIR}/cmake/SetupAmqpCPP.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver" + FILES "${USERVER_ROOT_DIR}/cmake/modules/Findamqpcpp.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules" ) if (USERVER_BUILD_TESTS) 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/rocks/CMakeLists.txt b/rocks/CMakeLists.txt index 3609e2f98320..6d7206073508 100644 --- a/rocks/CMakeLists.txt +++ b/rocks/CMakeLists.txt @@ -7,9 +7,3 @@ userver_module(rocks LINK_LIBRARIES RocksDB::rocksdb UTEST_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*_test.cpp" ) - -_userver_directory_install(COMPONENT rocks - FILES - "${USERVER_ROOT_DIR}/cmake/modules/FindRocksDB.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver/modules" -) diff --git a/universal/CMakeLists.txt b/universal/CMakeLists.txt index 26abc159db40..9e6eea08d97c 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,12 +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/Findzstd.cmake" "${USERVER_ROOT_DIR}/cmake/modules/Findcctz.cmake" "${USERVER_ROOT_DIR}/cmake/modules/Findre2.cmake" - "${USERVER_ROOT_DIR}/cmake/modules/FindJemalloc.cmake" + "${USERVER_ROOT_DIR}/cmake/modules/Findfmt.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()