From 6b5109cf8d12525bc7d9ae6ba423ec3e23de2b33 Mon Sep 17 00:00:00 2001 From: Andrey Alifanov Date: Mon, 17 Feb 2025 15:12:31 +0500 Subject: [PATCH] Support for CMake --- clickhouse/CMakeLists.txt | 23 ++++++++++++++++++++++- cmake/clickhouse-cpp-config.cmake.in | 10 ++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 cmake/clickhouse-cpp-config.cmake.in diff --git a/clickhouse/CMakeLists.txt b/clickhouse/CMakeLists.txt index 487e295d..85ae5676 100644 --- a/clickhouse/CMakeLists.txt +++ b/clickhouse/CMakeLists.txt @@ -116,7 +116,9 @@ TARGET_LINK_LIBRARIES (clickhouse-cpp-lib zstd::zstd ) TARGET_INCLUDE_DIRECTORIES (clickhouse-cpp-lib - PUBLIC ${PROJECT_SOURCE_DIR} + PUBLIC + $ + $ ) IF (NOT BUILD_SHARED_LIBS) @@ -153,10 +155,29 @@ ENDIF () INSTALL (TARGETS clickhouse-cpp-lib + EXPORT clickhouse-cpp-config ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) +include(CMakePackageConfigHelpers) +configure_package_config_file( + ../cmake/clickhouse-cpp-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/clickhouse-cpp-config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/clickhouse-cpp +) + +INSTALL(EXPORT clickhouse-cpp-config + FILE clickhouse-cpp-targets.cmake + DESTINATION lib/cmake/clickhouse-cpp +) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/clickhouse-cpp-config.cmake DESTINATION lib/cmake/clickhouse-cpp) + +install(FILES ../cmake/Findcityhash.cmake DESTINATION lib/cmake/clickhouse-cpp) +install(FILES ../cmake/Findlz4.cmake DESTINATION lib/cmake/clickhouse-cpp) +install(FILES ../cmake/Findzstd.cmake DESTINATION lib/cmake/clickhouse-cpp) + # general INSTALL(FILES block.h DESTINATION include/clickhouse/) INSTALL(FILES client.h DESTINATION include/clickhouse/) diff --git a/cmake/clickhouse-cpp-config.cmake.in b/cmake/clickhouse-cpp-config.cmake.in new file mode 100644 index 00000000..bbb5e7d1 --- /dev/null +++ b/cmake/clickhouse-cpp-config.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) +find_dependency(absl) +find_dependency(cityhash) +find_dependency(lz4) +find_dependency(zstd) + +include(clickhouse-cpp-targets)