2009-03-17 22:04:16 +00:00
|
|
|
project(libssh-library C)
|
2009-02-02 14:44:46 +00:00
|
|
|
|
|
|
|
set(LIBSSH_PUBLIC_INCLUDE_DIRS
|
|
|
|
${CMAKE_SOURCE_DIR}/include
|
|
|
|
CACHE INTERNAL "libssh public include directories"
|
|
|
|
)
|
|
|
|
|
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${CMAKE_BINARY_DIR}
|
2010-12-29 20:18:18 +01:00
|
|
|
${OPENSSL_INCLUDE_DIRS}
|
2009-02-02 14:44:46 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
2009-08-25 15:07:29 +02:00
|
|
|
${LIBSSH_REQUIRED_LIBRARIES}
|
2009-02-02 14:44:46 +00:00
|
|
|
)
|
|
|
|
|
2009-03-08 14:05:41 +00:00
|
|
|
if (WIN32)
|
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
ws2_32
|
|
|
|
)
|
|
|
|
endif (WIN32)
|
|
|
|
|
2009-08-21 15:15:18 +02:00
|
|
|
if (HAVE_LIBSOCKET)
|
2009-07-23 11:57:17 +02:00
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
socket
|
|
|
|
)
|
2009-08-21 15:15:18 +02:00
|
|
|
endif (HAVE_LIBSOCKET)
|
2009-07-23 11:57:17 +02:00
|
|
|
|
2010-04-06 22:23:43 +02:00
|
|
|
if (OPENSSL_LIBRARIES)
|
2009-03-08 12:11:10 +00:00
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
|
|
|
${OPENSSL_INCLUDE_DIRS}
|
|
|
|
)
|
2009-03-25 15:01:33 +00:00
|
|
|
|
2009-03-08 12:11:10 +00:00
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
2010-04-06 22:23:43 +02:00
|
|
|
${OPENSSL_LIBRARIES}
|
2009-03-08 12:11:10 +00:00
|
|
|
)
|
2010-04-06 22:23:43 +02:00
|
|
|
endif (OPENSSL_LIBRARIES)
|
2009-03-08 12:11:10 +00:00
|
|
|
|
|
|
|
if (GCRYPT_LIBRARY)
|
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
2012-02-04 20:09:00 +01:00
|
|
|
${GCRYPT_INCLUDE_DIR}
|
2009-03-08 12:11:10 +00:00
|
|
|
)
|
2009-03-25 15:01:33 +00:00
|
|
|
|
2009-03-08 12:11:10 +00:00
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
${GCRYPT_LIBRARY}
|
|
|
|
)
|
|
|
|
endif (GCRYPT_LIBRARY)
|
|
|
|
|
2011-09-23 08:00:25 +02:00
|
|
|
if (WITH_ZLIB)
|
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
|
|
|
${ZLIB_INCLUDE_DIRS}
|
|
|
|
)
|
|
|
|
|
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
${ZLIB_LIBRARY}
|
|
|
|
)
|
|
|
|
endif (WITH_ZLIB)
|
|
|
|
|
2013-07-24 20:02:49 +02:00
|
|
|
if (WITH_GSSAPI AND GSSAPI_FOUND)
|
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
|
|
|
${GSSAPI_INCLUDE_DIR}
|
|
|
|
)
|
|
|
|
|
2013-02-20 23:15:55 +01:00
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
2013-07-24 20:02:49 +02:00
|
|
|
${GSSAPI_LIBRARIES}
|
2013-02-20 23:15:55 +01:00
|
|
|
)
|
2013-07-24 20:02:49 +02:00
|
|
|
endif (WITH_GSSAPI AND GSSAPI_FOUND)
|
2013-02-20 23:15:55 +01:00
|
|
|
|
2013-09-21 23:34:50 +02:00
|
|
|
if (WITH_NACL AND NACL_FOUND)
|
|
|
|
set(LIBSSH_PRIVATE_INCLUDE_DIRS
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
|
|
|
${NACL_INCLUDE_DIR}
|
|
|
|
)
|
|
|
|
|
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
${NACL_LIBRARY}
|
|
|
|
)
|
|
|
|
endif (WITH_NACL AND NACL_FOUND)
|
|
|
|
|
2010-03-03 00:39:20 +01:00
|
|
|
set(LIBSSH_LINK_LIBRARIES
|
|
|
|
${LIBSSH_LINK_LIBRARIES}
|
|
|
|
CACHE INTERNAL "libssh link libraries"
|
|
|
|
)
|
|
|
|
|
2011-09-23 08:00:25 +02:00
|
|
|
set(LIBSSH_SHARED_LIBRARY
|
|
|
|
ssh_shared
|
|
|
|
CACHE INTERNAL "libssh shared library"
|
|
|
|
)
|
|
|
|
|
|
|
|
if (WITH_STATIC_LIB)
|
|
|
|
set(LIBSSH_STATIC_LIBRARY
|
|
|
|
ssh_static
|
|
|
|
CACHE INTERNAL "libssh static library"
|
|
|
|
)
|
|
|
|
endif (WITH_STATIC_LIB)
|
|
|
|
|
2009-02-02 14:44:46 +00:00
|
|
|
set(libssh_SRCS
|
|
|
|
agent.c
|
|
|
|
auth.c
|
|
|
|
base64.c
|
|
|
|
buffer.c
|
2009-10-10 10:46:28 +02:00
|
|
|
callbacks.c
|
2009-02-02 14:44:46 +00:00
|
|
|
channels.c
|
|
|
|
client.c
|
2009-09-08 11:33:46 +02:00
|
|
|
config.c
|
2009-02-02 14:44:46 +00:00
|
|
|
connect.c
|
2013-11-03 14:58:10 +01:00
|
|
|
curve25519.c
|
2009-02-02 14:44:46 +00:00
|
|
|
dh.c
|
2011-06-13 13:46:34 +02:00
|
|
|
ecdh.c
|
2009-02-02 14:44:46 +00:00
|
|
|
error.c
|
2011-01-23 20:08:17 +01:00
|
|
|
getpass.c
|
2009-02-02 14:44:46 +00:00
|
|
|
init.c
|
|
|
|
kex.c
|
2010-09-28 19:08:32 +02:00
|
|
|
known_hosts.c
|
2010-05-14 00:51:08 +02:00
|
|
|
legacy.c
|
2010-05-14 01:22:22 +02:00
|
|
|
libcrypto.c
|
2009-02-02 14:44:46 +00:00
|
|
|
log.c
|
|
|
|
match.c
|
|
|
|
messages.c
|
|
|
|
misc.c
|
|
|
|
options.c
|
|
|
|
packet.c
|
2011-09-17 20:17:11 +02:00
|
|
|
packet_cb.c
|
2011-09-17 20:05:58 +02:00
|
|
|
packet_crypt.c
|
2009-11-27 18:16:10 +01:00
|
|
|
pcap.c
|
2010-05-01 20:32:27 +02:00
|
|
|
pki.c
|
2009-06-04 07:23:55 +00:00
|
|
|
poll.c
|
2009-02-02 14:44:46 +00:00
|
|
|
session.c
|
2009-08-09 02:01:54 +02:00
|
|
|
scp.c
|
2009-02-02 14:44:46 +00:00
|
|
|
socket.c
|
|
|
|
string.c
|
2010-08-30 23:44:03 +02:00
|
|
|
threads.c
|
2009-02-02 14:44:46 +00:00
|
|
|
wrapper.c
|
|
|
|
)
|
|
|
|
|
2011-05-20 14:31:13 +02:00
|
|
|
if (WITH_GCRYPT)
|
2011-08-07 13:08:49 +02:00
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
libgcrypt.c
|
|
|
|
gcrypt_missing.c
|
2011-08-28 14:29:17 +02:00
|
|
|
pki_gcrypt.c
|
2011-08-07 13:08:49 +02:00
|
|
|
)
|
|
|
|
else (WITH_GCRYPT)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
pki_crypto.c
|
|
|
|
)
|
2011-05-20 14:31:13 +02:00
|
|
|
endif (WITH_GCRYPT)
|
|
|
|
|
2009-04-27 10:58:29 +00:00
|
|
|
if (WITH_SFTP)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
sftp.c
|
|
|
|
)
|
|
|
|
|
|
|
|
if (WITH_SERVER)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
sftpserver.c
|
|
|
|
)
|
|
|
|
endif (WITH_SERVER)
|
|
|
|
endif (WITH_SFTP)
|
|
|
|
|
2009-04-14 14:33:04 +00:00
|
|
|
if (WITH_SSH1)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
auth1.c
|
|
|
|
channels1.c
|
2011-09-17 18:48:55 +02:00
|
|
|
crc32.c
|
2011-09-10 11:03:46 +02:00
|
|
|
kex1.c
|
2010-01-23 22:59:10 +01:00
|
|
|
packet1.c
|
2009-04-14 14:33:04 +00:00
|
|
|
)
|
2009-04-16 17:21:47 +00:00
|
|
|
endif (WITH_SSH1)
|
2009-04-14 14:33:04 +00:00
|
|
|
|
2009-03-28 21:58:54 +00:00
|
|
|
if (WITH_SERVER)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
server.c
|
2010-10-20 16:54:22 +02:00
|
|
|
bind.c
|
2009-03-28 21:58:54 +00:00
|
|
|
)
|
|
|
|
endif (WITH_SERVER)
|
|
|
|
|
2011-09-17 22:47:56 +02:00
|
|
|
if (WITH_ZLIB)
|
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
gzip.c
|
|
|
|
)
|
|
|
|
endif(WITH_ZLIB)
|
|
|
|
|
2013-07-24 20:02:49 +02:00
|
|
|
if (WITH_GSSAPI AND GSSAPI_FOUND)
|
2013-07-13 15:46:23 +02:00
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
|
|
|
gssapi.c
|
|
|
|
)
|
2013-07-24 20:02:49 +02:00
|
|
|
endif (WITH_GSSAPI AND GSSAPI_FOUND)
|
2013-07-13 15:46:23 +02:00
|
|
|
|
2013-11-03 14:58:10 +01:00
|
|
|
if (NOT WITH_NACL)
|
2013-09-21 23:34:50 +02:00
|
|
|
set(libssh_SRCS
|
|
|
|
${libssh_SRCS}
|
2013-11-03 14:58:10 +01:00
|
|
|
curve25519_ref.c
|
2013-09-21 23:34:50 +02:00
|
|
|
)
|
2013-11-03 14:58:10 +01:00
|
|
|
endif (NOT WITH_NACL)
|
2013-09-21 23:34:50 +02:00
|
|
|
|
2009-02-02 14:44:46 +00:00
|
|
|
include_directories(
|
|
|
|
${LIBSSH_PUBLIC_INCLUDE_DIRS}
|
|
|
|
${LIBSSH_PRIVATE_INCLUDE_DIRS}
|
|
|
|
)
|
|
|
|
|
2009-03-25 15:01:33 +00:00
|
|
|
add_library(${LIBSSH_SHARED_LIBRARY} SHARED ${libssh_SRCS})
|
2009-02-02 14:44:46 +00:00
|
|
|
|
2009-03-25 15:01:33 +00:00
|
|
|
target_link_libraries(${LIBSSH_SHARED_LIBRARY} ${LIBSSH_LINK_LIBRARIES})
|
2009-02-02 14:44:46 +00:00
|
|
|
|
|
|
|
set_target_properties(
|
2009-03-25 15:01:33 +00:00
|
|
|
${LIBSSH_SHARED_LIBRARY}
|
2009-02-02 14:44:46 +00:00
|
|
|
PROPERTIES
|
|
|
|
VERSION
|
|
|
|
${LIBRARY_VERSION}
|
|
|
|
SOVERSION
|
|
|
|
${LIBRARY_SOVERSION}
|
2009-03-25 15:01:33 +00:00
|
|
|
OUTPUT_NAME
|
|
|
|
ssh
|
2009-08-11 15:38:49 +02:00
|
|
|
DEFINE_SYMBOL
|
2009-08-11 18:16:43 +02:00
|
|
|
LIBSSH_EXPORTS
|
2009-02-02 14:44:46 +00:00
|
|
|
)
|
|
|
|
|
2009-08-12 14:05:17 +02:00
|
|
|
if (WITH_VISIBILITY_HIDDEN)
|
|
|
|
set_target_properties(${LIBSSH_SHARED_LIBRARY} PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
|
|
|
|
endif (WITH_VISIBILITY_HIDDEN)
|
|
|
|
|
|
|
|
|
2009-02-02 14:44:46 +00:00
|
|
|
install(
|
|
|
|
TARGETS
|
2009-03-25 15:01:33 +00:00
|
|
|
${LIBSSH_SHARED_LIBRARY}
|
2009-08-11 15:38:49 +02:00
|
|
|
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
|
|
|
|
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
|
|
|
|
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
|
|
|
|
COMPONENT libraries
|
2009-02-02 14:44:46 +00:00
|
|
|
)
|
|
|
|
|
2009-03-25 15:01:33 +00:00
|
|
|
if (WITH_STATIC_LIB)
|
|
|
|
add_library(${LIBSSH_STATIC_LIBRARY} STATIC ${libssh_SRCS})
|
|
|
|
|
2011-06-01 14:52:27 +02:00
|
|
|
if (MSVC)
|
|
|
|
set(OUTPUT_SUFFIX static)
|
|
|
|
else (MSVC)
|
|
|
|
set(OUTPUT_SUFFIX )
|
|
|
|
endif (MSVC)
|
2009-03-25 15:01:33 +00:00
|
|
|
set_target_properties(
|
|
|
|
${LIBSSH_STATIC_LIBRARY}
|
|
|
|
PROPERTIES
|
|
|
|
VERSION
|
|
|
|
${LIBRARY_VERSION}
|
|
|
|
SOVERSION
|
|
|
|
${LIBRARY_SOVERSION}
|
2010-12-10 20:00:23 +01:00
|
|
|
OUTPUT_NAME
|
|
|
|
ssh
|
2011-06-01 14:52:27 +02:00
|
|
|
ARCHIVE_OUTPUT_DIRECTORY
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_SUFFIX}
|
2009-03-25 15:01:33 +00:00
|
|
|
)
|
|
|
|
|
2010-12-10 20:02:15 +01:00
|
|
|
if (WIN32)
|
|
|
|
set_target_properties(
|
|
|
|
${LIBSSH_STATIC_LIBRARY}
|
|
|
|
PROPERTIES
|
|
|
|
COMPILE_FLAGS
|
|
|
|
"-DLIBSSH_STATIC"
|
|
|
|
)
|
|
|
|
endif (WIN32)
|
|
|
|
|
2009-03-25 15:01:33 +00:00
|
|
|
install(
|
|
|
|
TARGETS
|
|
|
|
${LIBSSH_STATIC_LIBRARY}
|
|
|
|
DESTINATION
|
2011-06-01 14:52:27 +02:00
|
|
|
${LIB_INSTALL_DIR}/${OUTPUT_SUFFIX}
|
2009-03-25 15:01:33 +00:00
|
|
|
COMPONENT
|
|
|
|
libraries
|
|
|
|
)
|
|
|
|
endif (WITH_STATIC_LIB)
|
|
|
|
|
2014-02-06 12:08:57 +02:00
|
|
|
if (Threads_FOUND)
|
2010-09-06 14:54:16 +02:00
|
|
|
add_subdirectory(threads)
|
2014-02-06 12:08:57 +02:00
|
|
|
endif (Threads_FOUND)
|