cmake: Make sure we link against needed network libs on Solaris.
authorAndreas Schneider <asn@cryptomilk.org>
Fri, 19 Jul 2013 13:38:39 +0000 (15:38 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 19 Jul 2013 13:39:01 +0000 (15:39 +0200)
ConfigureChecks.cmake
src/CMakeLists.txt
tests/CMakeLists.txt

index 9f77031fb46bf730bdf4ba63f1cf39af2ea7d587..ef689b877f8d21216a8c5bcff3283bb07915ef95 100644 (file)
@@ -78,6 +78,24 @@ if (WIN32)
     check_function_exists(_snprintf_s HAVE__SNPRINTF_S)
 endif (WIN32)
 
+if (UNIX)
+    if (NOT LINUX)
+        # libsocket (Solaris)
+        check_library_exists(socket getaddrinfo "" HAVE_LIBSOCKET)
+        if (HAVE_LIBSOCKET)
+          set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} socket)
+        endif (HAVE_LIBSOCKET)
+
+        # libnsl/inet_pton (Solaris)
+        check_library_exists(nsl inet_pton "" HAVE_LIBNSL)
+        if (HAVE_LIBNSL)
+            set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} nsl)
+        endif (HAVE_LIBNSL)
+    endif (NOT LINUX)
+
+    check_function_exists(getaddrinfo HAVE_GETADDRINFO)
+endif (UNIX)
+
 if (SOLARIS)
     check_function_exists(__posix_getpwnam_r HAVE___POSIX_GETPWNAM_R)
     check_function_exists(__posix_getpwuid_r HAVE___POSIX_GETPWUID_R)
@@ -205,4 +223,4 @@ if (NOT WIN32)
     test_big_endian(WORDS_BIGENDIAN)
 endif (NOT WIN32)
 
-set(NSSWRAP_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} CACHE INTERNAL "nsswrap required system libraries")
+set(NWRAP_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} CACHE INTERNAL "nss_wrapper required system libraries")
index 5cc754ef373556eff0b97c159b6fe2fde19ff74d..b2c50129f5517faf16d92f228c1697d25d06c27b 100644 (file)
@@ -2,7 +2,7 @@ project(libnss_wrapper C)
 
 include_directories(${CMAKE_BINARY_DIR})
 add_library(nss_wrapper SHARED nss_wrapper.c)
-target_link_libraries(nss_wrapper ${NSSWRAP_REQUIRED_LIBRARIES})
+target_link_libraries(nss_wrapper ${NWRAP_REQUIRED_LIBRARIES})
 
 set_target_properties(
   nss_wrapper
index d879eac00697a7e302268c279dcc21cc13062cf2..2fa57a2c717ded83a9fe60bef3f2fdce92d034e9 100644 (file)
@@ -6,6 +6,8 @@ include_directories(
   ${CMOCKA_INCLUDE_DIR}
 )
 
+set(TESTSUITE_LIBRARIES ${NWRAP_REQUIRED_LIBRARIES} ${CMOCKA_LIBRARY})
+
 set(HOMEDIR ${CMAKE_CURRENT_BINARY_DIR})
 
 configure_file(passwd.in ${CMAKE_CURRENT_BINARY_DIR}/passwd @ONLY)
@@ -14,28 +16,28 @@ configure_file(hosts.in ${CMAKE_CURRENT_BINARY_DIR}/hosts @ONLY)
 
 set(TEST_ENVIRONMENT LD_PRELOAD=${CMAKE_BINARY_DIR}/src/libnss_wrapper.so;NSS_WRAPPER_PASSWD=${CMAKE_CURRENT_BINARY_DIR}/passwd;NSS_WRAPPER_GROUP=${CMAKE_CURRENT_BINARY_DIR}/group;NSS_WRAPPER_HOSTS=${CMAKE_CURRENT_BINARY_DIR}/hosts)
 
-add_cmocka_test(testsuite testsuite.c ${CMOCKA_LIBRARY})
+add_cmocka_test(testsuite testsuite.c ${TESTSUITE_LIBRARIES})
 set_property(
     TEST
         testsuite
     PROPERTY
         ENVIRONMENT ${TEST_ENVIRONMENT})
 
-add_cmocka_test(test_getaddrinfo test_getaddrinfo.c ${CMOCKA_LIBRARY})
+add_cmocka_test(test_getaddrinfo test_getaddrinfo.c ${TESTSUITE_LIBRARIES})
 set_property(
     TEST
         test_getaddrinfo
     PROPERTY
         ENVIRONMENT ${TEST_ENVIRONMENT})
 
-add_cmocka_test(test_getnameinfo test_getnameinfo.c ${CMOCKA_LIBRARY})
+add_cmocka_test(test_getnameinfo test_getnameinfo.c ${TESTSUITE_LIBRARIES})
 set_property(
     TEST
         test_getnameinfo
     PROPERTY
         ENVIRONMENT ${TEST_ENVIRONMENT})
 
-add_cmocka_test(test_gethostby_name_addr test_gethostby_name_addr.c ${CMOCKA_LIBRARY})
+add_cmocka_test(test_gethostby_name_addr test_gethostby_name_addr.c ${TESTSUITE_LIBRARIES})
 set_property(
     TEST
         test_gethostby_name_addr