From 448d8f39f6b74bd9bc55b54f432deea09763fedb Mon Sep 17 00:00:00 2001 From: Mike Gelfand Date: Sat, 24 Dec 2016 20:11:27 +0300 Subject: [PATCH] CMake support for Solaris --- CMakeLists.txt | 15 +++++++++++++++ cmake/FindEVENT2.cmake | 2 +- cmake/TrMacros.cmake | 14 ++++++++++++++ libtransmission/CMakeLists.txt | 5 +---- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50dabe752..56ed704e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -518,6 +518,21 @@ if(HAVE_LIBM) set(LIBM_LIBRARY m) endif() +set(TR_NETWORK_LIBRARIES) +if(WIN32) + list(APPEND TR_NETWORK_LIBRARIES iphlpapi ws2_32) +else() + tr_select_library("c;socket;net" socket "" LIB) + if(NOT LIB MATCHES "^(|c)$") + list(APPEND TR_NETWORK_LIBRARIES ${LIB}) + endif() + + tr_select_library("c;nsl;bind" gethostbyname "" LIB) + if(NOT LIB MATCHES "^(|c)$") + list(APPEND TR_NETWORK_LIBRARIES ${LIB}) + endif() +endif() + if(ENABLE_TESTS) enable_testing() endif() diff --git a/cmake/FindEVENT2.cmake b/cmake/FindEVENT2.cmake index 254a8a146..b1b9492b1 100644 --- a/cmake/FindEVENT2.cmake +++ b/cmake/FindEVENT2.cmake @@ -13,7 +13,7 @@ if(UNIX) endif() find_path(EVENT2_INCLUDE_DIR NAMES event2/event.h HINTS ${_EVENT2_INCLUDEDIR}) -find_library(EVENT2_LIBRARY NAMES event HINTS ${_EVENT2_LIBDIR}) +find_library(EVENT2_LIBRARY NAMES event-2.1 event-2.0 event HINTS ${_EVENT2_LIBDIR}) if(EVENT2_INCLUDE_DIR) if(_EVENT2_VERSION) diff --git a/cmake/TrMacros.cmake b/cmake/TrMacros.cmake index 6ddef1102..1e73bc1fb 100644 --- a/cmake/TrMacros.cmake +++ b/cmake/TrMacros.cmake @@ -139,3 +139,17 @@ function(tr_win32_app_info OVAR DESCR INTNAME ORIGFNAME) set(${OVAR} "${CMAKE_CURRENT_BINARY_DIR}/${INTNAME}-app-info.rc" PARENT_SCOPE) endfunction() + +function(tr_select_library LIBNAMES FUNCNAME DIRS OVAR) + set(LIBNAME) + foreach(X ${LIBNAMES}) + set(VAR_NAME "HAVE_${FUNCNAME}_IN_LIB${X}") + string(TOUPPER "${VAR_NAME}" VAR_NAME) + check_library_exists("${X}" "${FUNCNAME}" "${DIRS}" ${VAR_NAME}) + if(${VAR_NAME}) + set(LIBNAME "${X}") + break() + endif() + endforeach() + set(${OVAR} "${LIBNAME}" PARENT_SCOPE) +endfunction() diff --git a/libtransmission/CMakeLists.txt b/libtransmission/CMakeLists.txt index 4ff920d85..20e92768c 100644 --- a/libtransmission/CMakeLists.txt +++ b/libtransmission/CMakeLists.txt @@ -254,16 +254,13 @@ target_link_libraries(${TR_NAME} ${B64_LIBRARIES} ${LIBINTL_LIBRARY} ${LIBM_LIBRARY} + ${TR_NETWORK_LIBRARIES} ) if(ICONV_FOUND) target_link_libraries(${TR_NAME} ${ICONV_LIBRARIES}) endif() -if(WIN32) - target_link_libraries(${TR_NAME} iphlpapi ws2_32) -endif() - if(ENABLE_TESTS) add_library(${TR_NAME}-test STATIC libtransmission-test.c