@@ -8,23 +8,11 @@ endif()
88set (LIB_SOURCE_DIR "${ClickHouse_SOURCE_DIR} /contrib/libssh" )
99set (LIB_BINARY_DIR "${ClickHouse_BINARY_DIR} /contrib/libssh" )
1010
11- project (libssh VERSION 0.9.7 LANGUAGES C )
12-
13- # global needed variable
14- set (APPLICATION_NAME ${PROJECT_NAME} )
15-
16- # SOVERSION scheme: CURRENT.AGE.REVISION
17- # If there was an incompatible interface change:
18- # Increment CURRENT. Set AGE and REVISION to 0
19- # If there was a compatible interface change:
20- # Increment AGE. Set REVISION to 0
21- # If the source code was changed, but there were no interface changes:
22- # Increment REVISION.
23- set (LIBRARY_VERSION "4.8.7" )
24- set (LIBRARY_SOVERSION "4" )
11+ # Set CMake variables which are used in libssh_version.h.cmake
12+ project (libssh VERSION 0.9.8 LANGUAGES C )
2513
26- # Copy library files to a lib sub-directory
27- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY " ${LIB_BINARY_DIR} /lib " )
14+ set (LIBRARY_VERSION "4.8.8" )
15+ set (LIBRARY_SOVERSION "4 " )
2816
2917set (CMAKE_THREAD_PREFER_PTHREADS ON )
3018set (THREADS_PREFER_PTHREAD_FLAG ON )
@@ -33,7 +21,87 @@ set(WITH_ZLIB OFF)
3321set (WITH_SYMBOL_VERSIONING OFF )
3422set (WITH_SERVER ON )
3523
36- include (IncludeSources.cmake )
24+ set (libssh_SRCS
25+ ${LIB_SOURCE_DIR} /src/agent.c
26+ ${LIB_SOURCE_DIR} /src/auth.c
27+ ${LIB_SOURCE_DIR} /src/base64.c
28+ ${LIB_SOURCE_DIR} /src/bignum.c
29+ ${LIB_SOURCE_DIR} /src/buffer.c
30+ ${LIB_SOURCE_DIR} /src/callbacks.c
31+ ${LIB_SOURCE_DIR} /src/channels.c
32+ ${LIB_SOURCE_DIR} /src/client.c
33+ ${LIB_SOURCE_DIR} /src/config.c
34+ ${LIB_SOURCE_DIR} /src/connect.c
35+ ${LIB_SOURCE_DIR} /src/connector.c
36+ ${LIB_SOURCE_DIR} /src/curve25519.c
37+ ${LIB_SOURCE_DIR} /src/dh.c
38+ ${LIB_SOURCE_DIR} /src/ecdh.c
39+ ${LIB_SOURCE_DIR} /src/error.c
40+ ${LIB_SOURCE_DIR} /src/getpass.c
41+ ${LIB_SOURCE_DIR} /src/init.c
42+ ${LIB_SOURCE_DIR} /src/kdf.c
43+ ${LIB_SOURCE_DIR} /src/kex.c
44+ ${LIB_SOURCE_DIR} /src/known_hosts.c
45+ ${LIB_SOURCE_DIR} /src/knownhosts.c
46+ ${LIB_SOURCE_DIR} /src/legacy.c
47+ ${LIB_SOURCE_DIR} /src/log.c
48+ ${LIB_SOURCE_DIR} /src/match.c
49+ ${LIB_SOURCE_DIR} /src/messages.c
50+ ${LIB_SOURCE_DIR} /src/misc.c
51+ ${LIB_SOURCE_DIR} /src/options.c
52+ ${LIB_SOURCE_DIR} /src/packet.c
53+ ${LIB_SOURCE_DIR} /src/packet_cb.c
54+ ${LIB_SOURCE_DIR} /src/packet_crypt.c
55+ ${LIB_SOURCE_DIR} /src/pcap.c
56+ ${LIB_SOURCE_DIR} /src/pki.c
57+ ${LIB_SOURCE_DIR} /src/pki_container_openssh.c
58+ ${LIB_SOURCE_DIR} /src/poll.c
59+ ${LIB_SOURCE_DIR} /src/session.c
60+ ${LIB_SOURCE_DIR} /src/scp.c
61+ ${LIB_SOURCE_DIR} /src/socket.c
62+ ${LIB_SOURCE_DIR} /src/string .c
63+ ${LIB_SOURCE_DIR} /src/threads.c
64+ ${LIB_SOURCE_DIR} /src/wrapper.c
65+ ${LIB_SOURCE_DIR} /src/external/bcrypt_pbkdf.c
66+ ${LIB_SOURCE_DIR} /src/external/blowfish.c
67+ ${LIB_SOURCE_DIR} /src/external/chacha.c
68+ ${LIB_SOURCE_DIR} /src/external/poly1305.c
69+ ${LIB_SOURCE_DIR} /src/chachapoly.c
70+ ${LIB_SOURCE_DIR} /src/config_parser.c
71+ ${LIB_SOURCE_DIR} /src/token.c
72+ ${LIB_SOURCE_DIR} /src/pki_ed25519_common.c
73+
74+ ${LIB_SOURCE_DIR} /src/threads/noop.c
75+ ${LIB_SOURCE_DIR} /src/threads/pthread.c
76+
77+ # LIBCRYPT specific
78+ ${libssh_SRCS}
79+ ${LIB_SOURCE_DIR} /src/threads/libcrypto.c
80+ ${LIB_SOURCE_DIR} /src/pki_crypto.c
81+ ${LIB_SOURCE_DIR} /src/ecdh_crypto.c
82+ ${LIB_SOURCE_DIR} /src/libcrypto.c
83+ ${LIB_SOURCE_DIR} /src/dh_crypto.c
84+
85+ ${LIB_SOURCE_DIR} /src/options.c
86+ ${LIB_SOURCE_DIR} /src/server.c
87+ ${LIB_SOURCE_DIR} /src/bind.c
88+ ${LIB_SOURCE_DIR} /src/bind_config.c
89+ )
90+
91+ if (NOT (ENABLE_OPENSSL OR ENABLE_OPENSSL_DYNAMIC))
92+ add_compile_definitions (USE_BORINGSSL=1 )
93+ endif ()
94+
95+ configure_file (${LIB_SOURCE_DIR} /include/libssh/libssh_version.h.cmake ${LIB_BINARY_DIR} /include/libssh/libssh_version.h @ONLY )
96+
97+ add_library (_ssh STATIC ${libssh_SRCS} )
98+ add_library (ch_contrib::ssh ALIAS _ssh )
99+
100+ target_link_libraries (_ssh PRIVATE OpenSSL::Crypto )
101+
102+ target_include_directories (_ssh PUBLIC "${LIB_SOURCE_DIR} /include" "${LIB_BINARY_DIR} /include" )
103+
104+ # These headers need to be generated using the native build system on each platform.
37105if (OS_LINUX)
38106 if (ARCH_AMD64)
39107 if (USE_MUSL)
@@ -63,7 +131,3 @@ elseif (OS_FREEBSD)
63131else ()
64132 message (FATAL_ERROR "Platform is not supported" )
65133endif ()
66-
67- configure_file (${LIB_SOURCE_DIR} /include/libssh/libssh_version.h.cmake
68- ${LIB_BINARY_DIR} /include/libssh/libssh_version.h
69- @ONLY )
0 commit comments