mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-04 12:20:42 +09:00
This should fix the build on Windows and would not install pkg files.
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 5b586fdfec)
133 lines
3.2 KiB
CMake
133 lines
3.2 KiB
CMake
project(libssh-threads C)
|
|
|
|
set(LIBSSH_THREADS_PUBLIC_INCLUDE_DIRS
|
|
${CMAKE_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_SOURCE_DIR}
|
|
CACHE INTERNAL "libssh public include directories"
|
|
)
|
|
|
|
set(LIBSSH_THREADS_PRIVATE_INCLUDE_DIRS
|
|
${CMAKE_BINARY_DIR}
|
|
)
|
|
|
|
set(LIBSSH_THREADS_SHARED_LIBRARY
|
|
ssh_threads_shared
|
|
CACHE INTERNAL "libssh threads shared library"
|
|
)
|
|
|
|
if (WITH_STATIC_LIB)
|
|
set(LIBSSH_THREADS_STATIC_LIBRARY
|
|
ssh_threads_static
|
|
CACHE INTERNAL "libssh threads static library"
|
|
)
|
|
endif (WITH_STATIC_LIB)
|
|
|
|
set(LIBSSH_THREADS_LINK_LIBRARIES
|
|
${LIBSSH_SHARED_LIBRARY}
|
|
)
|
|
|
|
message(STATUS "threads library: Threads_FOUND=${Threads_FOUND}")
|
|
|
|
set(libssh_threads_SRCS) # empty SRC
|
|
|
|
# build and link pthread
|
|
if (CMAKE_USE_PTHREADS_INIT)
|
|
set(libssh_threads_SRCS
|
|
${libssh_threads_SRCS}
|
|
pthread.c
|
|
)
|
|
|
|
set(LIBSSH_THREADS_LINK_LIBRARIES
|
|
${LIBSSH_THREADS_LINK_LIBRARIES}
|
|
${CMAKE_THREAD_LIBS_INIT}
|
|
)
|
|
|
|
message(STATUS "libssh_threads_SRCS=${libssh_threads_SRCS}")
|
|
endif (CMAKE_USE_PTHREADS_INIT)
|
|
|
|
set(LIBSSH_THREADS_LINK_LIBRARIES
|
|
${LIBSSH_THREADS_LINK_LIBRARIES}
|
|
CACHE INTERNAL "libssh threads link libraries"
|
|
)
|
|
|
|
include_directories(
|
|
${LIBSSH_THREADS_PUBLIC_INCLUDE_DIRS}
|
|
${LIBSSH_THREADS_PRIVATE_INCLUDE_DIRS}
|
|
)
|
|
|
|
if (libssh_threads_SRCS)
|
|
set(LIBSSH_THREADS ON CACHE "libssh threads lib" INTERNAL)
|
|
|
|
add_library(${LIBSSH_THREADS_SHARED_LIBRARY} SHARED ${libssh_threads_SRCS})
|
|
|
|
target_link_libraries(${LIBSSH_THREADS_SHARED_LIBRARY} ${LIBSSH_THREADS_LINK_LIBRARIES})
|
|
|
|
set_target_properties(
|
|
${LIBSSH_THREADS_SHARED_LIBRARY}
|
|
PROPERTIES
|
|
VERSION
|
|
${LIBRARY_VERSION}
|
|
SOVERSION
|
|
${LIBRARY_SOVERSION}
|
|
OUTPUT_NAME
|
|
ssh_threads
|
|
DEFINE_SYMBOL
|
|
LIBSSH_EXPORTS
|
|
)
|
|
|
|
if (WITH_VISIBILITY_HIDDEN)
|
|
set_target_properties(${LIBSSH_THREADS_SHARED_LIBRARY} PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
|
|
endif (WITH_VISIBILITY_HIDDEN)
|
|
|
|
install(
|
|
TARGETS
|
|
${LIBSSH_THREADS_SHARED_LIBRARY}
|
|
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
|
|
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
|
|
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
|
|
COMPONENT libraries
|
|
)
|
|
|
|
if (WITH_STATIC_LIB)
|
|
add_library(${LIBSSH_THREADS_STATIC_LIBRARY} STATIC ${libssh_threads_SRCS})
|
|
|
|
if (MSVC)
|
|
set(OUTPUT_SUFFIX static)
|
|
else (MSVC)
|
|
set(OUTPUT_SUFFIX )
|
|
endif (MSVC)
|
|
|
|
set_target_properties(
|
|
${LIBSSH_THREADS_STATIC_LIBRARY}
|
|
PROPERTIES
|
|
VERSION
|
|
${LIBRARY_VERSION}
|
|
SOVERSION
|
|
${LIBRARY_SOVERSION}
|
|
OUTPUT_NAME
|
|
ssh_threads
|
|
ARCHIVE_OUTPUT_DIRECTORY
|
|
${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_SUFFIX}
|
|
)
|
|
|
|
if (WIN32)
|
|
set_target_properties(
|
|
${LIBSSH_THREADS_STATIC_LIBRARY}
|
|
PROPERTIES
|
|
COMPILE_FLAGS
|
|
"-DLIBSSH_STATIC"
|
|
)
|
|
endif (WIN32)
|
|
|
|
install(
|
|
TARGETS
|
|
${LIBSSH_THREADS_STATIC_LIBRARY}
|
|
DESTINATION
|
|
${LIB_INSTALL_DIR}/${OUTPUT_SUFFIX}
|
|
COMPONENT
|
|
libraries
|
|
)
|
|
endif (WITH_STATIC_LIB)
|
|
endif (libssh_threads_SRCS)
|