INCLUDE(CheckFunctionExists) CHECK_FUNCTION_EXISTS(gethostbyaddr_r HAS_GETHOSTBYNAME_R) IF(HAS_GETHOSTBYNAME_R EQUAL 1) SET (FLAGS "${FLAGS} -DHAS_GETHOSTBYADDR_R") ENDIF() CHECK_FUNCTION_EXISTS(poll HAS_POLL) IF(HAS_POLL EQUAL 1) SET (FLAGS "${FLAGS} -DHAS_POLL") ENDIF() CHECK_FUNCTION_EXISTS(fcntl HAS_FCNTL) IF(HAS_FCNTL) SET (FLAGS "${FLAGS} -DHAS_FCNTL") ENDIF() CHECK_FUNCTION_EXISTS(inet_pton HAS_INETPTON) IF(HAS_INETPTON EQUAL 1) SET (FLAGS "${FLAGS} -DHAS_INETPTON") ENDIF() CHECK_FUNCTION_EXISTS(inet_ntop HAS_INETNTOP) IF(HAS_INETNTOP EQUAL 1) SET (FLAGS "${FLAGS} -DHAS_INETNTOP") ENDIF() INCLUDE(CheckTypeSize) SET (CMAKE_EXTRA_INCLUDE_FILES sys/socket.h) CHECK_TYPE_SIZE(socklen_t SOCKLEN_T) IF(HAVE_SOCKLEN_T) SET (FLAGS "${FLAGS} -DHAS_SOCKLEN_T") ENDIF() INCLUDE(CheckStructHasMember) CHECK_STRUCT_HAS_MEMBER("struct msghdr" msg_flags sys/socket.h HAS_MSGHDR_FLAGS) IF(HAS_MSGHDR_FLAGS EQUAL 1) SET (FLAGS "${FLAGS} -DHAS_MSGHDR_FLAGS") ENDIF() SET (SRCS callbacks.c compress.c host.c list.c packet.c peer.c protocol.c unix.c win32.c ) INCLUDE_DIRECTORIES("include") ADD_LIBRARY(enet STATIC ${SRCS}) SET_TARGET_PROPERTIES(enet PROPERTIES COMPILE_FLAGS "${FLAGS}")