From ba459c7b3b23ca92ffe2df13221d0d541944577d Mon Sep 17 00:00:00 2001 From: Vasily Sviridov Date: Wed, 8 Jul 2026 20:23:48 +0300 Subject: [PATCH] fix(ydb): load installed package dependencies before targets --- cmake/install/Config.cmake.in | 16 +++++++++++++--- cmake/install/userver-ydb-config.cmake | 15 +++++++++++---- ydb/CMakeLists.txt | 2 +- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/cmake/install/Config.cmake.in b/cmake/install/Config.cmake.in index fe4631b23e39..167b27ed31f5 100644 --- a/cmake/install/Config.cmake.in +++ b/cmake/install/Config.cmake.in @@ -24,6 +24,19 @@ if(NOT userver_FIND_COMPONENTS) return() endif() +include(CMakeFindDependencyMacro) + +set(USERVER_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR}) + +if("ydb" IN_LIST userver_FIND_COMPONENTS) + set(USERVER_YDB_CONFIG_PHASE deps) + include("${USERVER_CMAKE_DIR}/userver-ydb-config.cmake") + unset(USERVER_YDB_CONFIG_PHASE) + if(NOT _USERVER_YDB_DEPS_LOADED) + return() + endif() +endif() + if(CMAKE_BUILD_TYPE MATCHES "^.*Rel.*$") # same as in UserverSetupEnvironment include("${CMAKE_CURRENT_LIST_DIR}/release/userver-targets.cmake") else() @@ -32,10 +45,7 @@ endif() message(STATUS "Userver components: ${userver_FIND_COMPONENTS}") -include(CMakeFindDependencyMacro) - set(USERVER_DOWNLOAD_PACKAGES OFF) -set(USERVER_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR}) set(USERVER_TESTSUITE_DIR "${USERVER_CMAKE_DIR}/testsuite") set(USERVER_CONAN @USERVER_CONAN@) set(USERVER_IMPL_ORIGINAL_CXX_STANDARD @CMAKE_CXX_STANDARD@) diff --git a/cmake/install/userver-ydb-config.cmake b/cmake/install/userver-ydb-config.cmake index 7dd003bc0999..0d91662bafd2 100644 --- a/cmake/install/userver-ydb-config.cmake +++ b/cmake/install/userver-ydb-config.cmake @@ -1,5 +1,14 @@ -# TODO: not working yet -include_guard(GLOBAL) +if(USERVER_YDB_CONFIG_PHASE STREQUAL "deps") + if(_USERVER_YDB_DEPS_LOADED) + return() + endif() + + find_dependency(googleapis CONFIG) + find_dependency(ydb-cpp-sdk CONFIG) + + set(_USERVER_YDB_DEPS_LOADED TRUE) + return() +endif() if(userver_ydb_FOUND) return() @@ -7,8 +16,6 @@ endif() find_package(userver REQUIRED COMPONENTS core) -# include("${USERVER_CMAKE_DIR}/ydb-cpp-sdk.cmake") - include("${USERVER_CMAKE_DIR}/UserverSql.cmake") set(userver_ydb_FOUND TRUE) diff --git a/ydb/CMakeLists.txt b/ydb/CMakeLists.txt index ee0549054019..4636f64923a5 100644 --- a/ydb/CMakeLists.txt +++ b/ydb/CMakeLists.txt @@ -31,7 +31,7 @@ userver_module( _userver_directory_install( COMPONENT ydb - FILES "${USERVER_ROOT_DIR}/cmake/SetupYdbCPPSDK.cmake" + FILES "${USERVER_ROOT_DIR}/cmake/SetupYdbCppSDK.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/userver" )