--- clickhouse-cpp-2.4.0/CMakeLists.txt.orig 2023-04-28 23:19:27.946402432 +0300 +++ clickhouse-cpp-2.4.0/CMakeLists.txt 2023-04-28 23:23:12.300022180 +0300 @@ -16,6 +16,11 @@ OPTION (WITH_SYSTEM_CITYHASH "Use system PROJECT (CLICKHOUSE-CLIENT) + find_package(PkgConfig REQUIRED) + pkg_check_modules(LZ4 liblz4 REQUIRED IMPORTED_TARGET) + + find_package(CITYHASH REQUIRED) + USE_CXX17 () USE_OPENSSL () @@ -77,7 +82,7 @@ PROJECT (CLICKHOUSE-CLIENT) ENDIF () IF (WITH_SYSTEM_CITYHASH) - FIND_PACKAGE(cityhash REQUIRED) + FIND_PACKAGE(CITYHASH REQUIRED) ELSE () INCLUDE_DIRECTORIES (contrib/cityhash/cityhash) SUBDIRS (contrib/cityhash/cityhash) @@ -99,3 +104,6 @@ PROJECT (CLICKHOUSE-CLIENT) ut ) ENDIF (BUILD_TESTS) + +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/contrib/absl/absl DESTINATION include/clickhouse-cpp FILES_MATCHING PATTERN "*.h*") +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/contrib/absl/absl DESTINATION include/clickhouse-cpp FILES_MATCHING PATTERN "*.inc") --- clickhouse-cpp-2.4.0/clickhouse/CMakeLists.txt.orig 2023-04-29 01:11:31.515843195 +0300 +++ clickhouse-cpp-2.4.0/clickhouse/CMakeLists.txt 2023-04-29 01:12:40.077380540 +0300 @@ -39,7 +39,13 @@ IF (WITH_OPENSSL) ENDIF () ADD_LIBRARY (clickhouse-cpp-lib ${clickhouse-cpp-lib-src}) -SET_TARGET_PROPERTIES (clickhouse-cpp-lib PROPERTIES LINKER_LANGUAGE CXX) +SET_TARGET_PROPERTIES (clickhouse-cpp-lib PROPERTIES + LINKER_LANGUAGE CXX + VERSION 2 + SOVERSION 2.4 + OUTPUT_NAME "clickhouse-cpp" +) + TARGET_LINK_LIBRARIES (clickhouse-cpp-lib absl::int128 cityhash::cityhash @@ -77,10 +83,12 @@ ENDIF () INSTALL (TARGETS clickhouse-cpp-lib - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib${LIB_SUFFIX} + LIBRARY DESTINATION lib${LIB_SUFFIX} ) +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION include/clickhouse-cpp FILES_MATCHING PATTERN "*.h*") + # general INSTALL(FILES block.h DESTINATION include/clickhouse/) INSTALL(FILES client.h DESTINATION include/clickhouse/) --- /dev/null 2023-04-29 00:03:29.401295475 +0300 +++ clickhouse-cpp-2.4.0/cmake/FindCITYHASH.cmake 2023-04-29 00:02:48.665986644 +0300 @@ -0,0 +1,31 @@ +# - Try to find cityhash +# Once done this will define +# CITYHASH_FOUND - System has cityhash +# CITYHASH_INCLUDE_DIRS - The cityhash include directories +# CITYHASH_LIBRARIES - The libraries needed to use cityhash + +find_path(CITYHASH_INCLUDE_DIR city.h) +find_library(CITYHASH_LIBRARY NAMES cityhash libcityhash) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set CITYHASH_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(CITYHASH DEFAULT_MSG + CITYHASH_LIBRARY CITYHASH_INCLUDE_DIR) + +if (CITYHASH_FOUND AND NOT TARGET cityhash) + add_library(cityhash SHARED IMPORTED) + set_target_properties(cityhash PROPERTIES + IMPORTED_LOCATION "${CITYHASH_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${CITYHASH_INCLUDE_DIRS}" + ) +endif() + +if (CITYHASH_FOUND AND NOT TARGET cityhash::cityhash) + add_library(cityhash::cityhash ALIAS cityhash) +endif() + +mark_as_advanced(CITYHASH_INCLUDE_DIR CITYHASH_LIBRARY ) + +set(CITYHASH_LIBRARIES ${CITYHASH_LIBRARY} ) +set(CITYHASH_INCLUDE_DIRS ${CITYHASH_INCLUDE_DIR} ) --- clickhouse-cpp-2.4.0/clickhouse/base/socket.cpp.orig 2023-04-29 02:31:53.862497092 +0300 +++ clickhouse-cpp-2.4.0/clickhouse/base/socket.cpp 2023-04-29 02:37:43.556202451 +0300 @@ -129,10 +129,10 @@ void SetNonBlock(SOCKET fd, bool value) void SetTimeout(SOCKET fd, const SocketTimeoutParams& timeout_params) { #if defined(_unix_) - timeval recv_timeout{ timeout_params.recv_timeout.count() / 1000, static_cast(timeout_params.recv_timeout.count() % 1000 * 1000) }; + timeval recv_timeout{ static_cast(timeout_params.recv_timeout.count() / 1000), static_cast(timeout_params.recv_timeout.count() % 1000 * 1000) }; auto recv_ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &recv_timeout, sizeof(recv_timeout)); - timeval send_timeout{ timeout_params.send_timeout.count() / 1000, static_cast(timeout_params.send_timeout.count() % 1000 * 1000) }; + timeval send_timeout{ static_cast(timeout_params.send_timeout.count() / 1000), static_cast(timeout_params.send_timeout.count() % 1000 * 1000) }; auto send_ret = setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &send_timeout, sizeof(send_timeout)); if (recv_ret == -1 || send_ret == -1) {