summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Wachter <bwachter-mana@lart.info>2010-08-15 00:40:43 +0300
committerBernd Wachter <bwachter-mana@lart.info>2010-08-15 00:40:43 +0300
commit7416c489fafc1bf7779c535662961818c2047c3f (patch)
tree258245cf5f908a22f55f78f2aec612b44fb0b8d3
parent3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5 (diff)
downloadmanaserv-7416c489fafc1bf7779c535662961818c2047c3f.tar.gz
manaserv-7416c489fafc1bf7779c535662961818c2047c3f.tar.xz
manaserv-7416c489fafc1bf7779c535662961818c2047c3f.zip
Add included enet to CMake
-rw-r--r--CMakeLists.txt2
-rw-r--r--libs/enet/CMakeLists.txt55
-rw-r--r--src/CMakeLists.txt11
3 files changed, 65 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e3a7aa..ed39e69 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,5 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_POLICY(VERSION 2.6)
PROJECT(MANASERV)
@@ -50,4 +51,5 @@ ELSE (WIN32)
SET(PKG_BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
ENDIF (WIN32)
+ADD_SUBDIRECTORY(libs/enet)
ADD_SUBDIRECTORY(src)
diff --git a/libs/enet/CMakeLists.txt b/libs/enet/CMakeLists.txt
new file mode 100644
index 0000000..714d9c0
--- /dev/null
+++ b/libs/enet/CMakeLists.txt
@@ -0,0 +1,55 @@
+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}") \ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b7c0641..5e5da61 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,3 @@
-FIND_PACKAGE(ENet REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PhysFS REQUIRED)
@@ -13,6 +12,13 @@ IF (CMAKE_COMPILER_IS_GNUCXX)
ENDIF()
ENDIF()
+IF (POLICY CMP0015)
+ CMAKE_POLICY(SET CMP0015 OLD)
+ENDIF()
+INCLUDE_DIRECTORIES("../libs/enet/include")
+LINK_DIRECTORIES("../libs/enet")
+SET(INTERNAL_LIBRARIES enet)
+
# enable rc-handling with mingw
# most likely this part can be kicked out with some later cmake version
IF (MINGW)
@@ -87,7 +93,6 @@ ENDIF()
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
- ${ENET_INCLUDE_DIR}
${PHYSFS_INCLUDE_DIR}
${LIBXML2_INCLUDE_DIR}
)
@@ -294,7 +299,7 @@ ADD_EXECUTABLE(manaserv-game WIN32 ${SRCS} ${SRCS_MANASERVGAME})
ADD_EXECUTABLE(manaserv-account WIN32 ${SRCS} ${SRCS_MANASERVACCOUNT})
FOREACH(program ${PROGRAMS})
- TARGET_LINK_LIBRARIES(${program} ${ENET_LIBRARIES}
+ TARGET_LINK_LIBRARIES(${program} ${INTERNAL_LIBRARIES}
${PHYSFS_LIBRARY}
${LIBXML2_LIBRARIES}
${OPTIONAL_LIBRARIES}