Update CMake environment and add new tool
[umurmur.git] / src / CMakeLists.txt
index 58288f5cd74774a667802d820611b12a51ebfa9b..f7c967828118a4bc484a85df4bf9008e6bc0724b 100644 (file)
@@ -1,20 +1,53 @@
-set(SOURCE
-   ${SOURCE}
-   ${CMAKE_CURRENT_SOURCE_DIR}/Mumble.pb-c.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/ban.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/channel.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/client.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/conf.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/crypt.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/log.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/main.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/messagehandler.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/messages.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/pds.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/server.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/ssl.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/timer.c
-   ${CMAKE_CURRENT_SOURCE_DIR}/voicetarget.c
-
-   PARENT_SCOPE
-)
+set(SOURCE_FILES
+  ${CMAKE_CURRENT_SOURCE_DIR}/Mumble.pb-c.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/ban.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/channel.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/client.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/conf.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/crypt.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/log.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/main.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/messagehandler.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/messages.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/pds.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/server.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/timer.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/util.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/voicetarget.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/memory.c
+  )
+
+if(SSL MATCHES "openssl")
+  list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ssli_openssl.c)
+elseif(SSL MATCHES "polarssl")
+  list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ssli_polarssl.c)
+elseif(SSL MATCHES "mbedtls")
+  list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ssli_mbedtls.c)
+elseif(SSL MATCHES "gnutls")
+  list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/ssli_gnutls.c)
+endif(SSL MATCHES "openssl")
+
+if(USE_SHAREDMEMORY_API)
+  list(APPEND SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/sharedmemory.c)
+endif(USE_SHAREDMEMORY_API)
+
+configure_file(config.h.in ${CMAKE_SOURCE_DIR}/src/config.h)
+
+include_directories(${LIBCONFIG_INCLUDE_DIR}
+                    ${PROTOBUFC_INCLUDE_DIR}
+                    ${SSLIMP_INCLUDE_DIR})
+
+link_directories(${LIBCONFIG_LIB_DIR}
+                 ${PROTOBUFC_LIB_DIR}
+                 ${SSLIMP_LIB_DIR})
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+
+target_link_libraries(${PROJECT_NAME}
+                      ${LIBCONFIG_LIBRARIES}
+                      ${PROTOBUFC_LIBRARIES}
+                      ${SSLIMP_LIBRARIES}
+                      ${LIBRT}
+                      ${CRYPTO_LIBRARIES})
+
+install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "bin")