Imported Upstream version 1.1.11
[platform/upstream/cdrkit.git] / include / AddNetworkBits.cmake
1
2 # various checks add additional of extra libs, most likely for SunOS
3 # using own checks and not CHECK_SYMBOLE because of spurios problems seen with
4 # it
5
6 INCLUDE(CheckCSourceCompiles)
7
8 SET(TESTSRC "
9 #include <sys/types.h>
10 #include <sys/socket.h>
11
12 int main(int argc, char **argv) {
13 return socket(AF_INET, SOCK_STREAM, 0);
14 }
15 ")
16
17 SET(CMAKE_REQUIRED_LIBRARIES )
18 CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBC_SOCKET)
19
20 IF(NOT USE_LIBC_SOCKET)
21
22    LIST(APPEND EXTRA_LIBS socket)
23
24    SET(CMAKE_REQUIRED_LIBRARIES socket)
25    CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBSOCKET)
26    IF(NOT USE_LIBSOCKET)
27       MESSAGE(FATAL_ERROR "No working socket(...) found in libc or libsocket")
28    ENDIF(NOT USE_LIBSOCKET)
29
30 ENDIF(NOT USE_LIBC_SOCKET)
31
32 SET(TESTSRC "
33 #include <sys/types.h>
34 #include <sys/socket.h>
35 #include <netdb.h>
36
37 int main(int argc, char **argv) {
38 struct hostent *h = gethostbyname(argv[0]);
39 return sizeof(h);
40 }
41 ")
42
43 CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBC_NLS)
44 IF(NOT USE_LIBC_NLS)
45    SET(CMAKE_REQUIRED_LIBRARIES nls)
46    CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBNLS)
47    IF(USE_LIBNLS)
48       LIST(APPEND EXTRA_LIBS nls)
49    ELSE(USE_LIBNLS)
50       SET(CMAKE_REQUIRED_LIBRARIES xnet)
51       CHECK_C_SOURCE_COMPILES("${TESTSRC}" USE_LIBXNET)
52       IF(NOT USE_LIBXNET)
53          MESSAGE(FATAL_ERROR "Error: Could not find a system library providing gethostbyname.")
54       ELSE(NOT USE_LIBXNET)
55          LIST(APPEND EXTRA_LIBS xnet)
56       ENDIF(NOT USE_LIBXNET)
57    ENDIF(USE_LIBNLS)
58 ENDIF(NOT USE_LIBC_NLS)
59 SET(CMAKE_REQUIRED_LIBRARIES )
60