X-Git-Url: http://git.code-monkey.de/?p=umurmur.git;a=blobdiff_plain;f=CMakeLists.txt;h=42e0b3e55d9e4d37abb180a0f5b14b8667e7393c;hp=c59f76dee518659bad58d260636d1ba0eed93cea;hb=6fb422b7cbb94a2b8063c6df630b04184414b633;hpb=898e1028c5e2d7d987c564b176e82b346c435b15 diff --git a/CMakeLists.txt b/CMakeLists.txt index c59f76d..42e0b3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,23 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 2.8.3) project(umurmurd C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) +set(UMURMUR_ROOT_PATH "${CMAKE_CURRENT_LIST_DIR}") +set(UMURMUR_BINARY_DIR ${CMAKE_BINARY_DIR}) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING "The type of build product that should be produced.") +endif(NOT CMAKE_BUILD_TYPE) + option(USE_POLARSSL_TESTCERT "Link to the PolarSSL test certificate and key." OFF) option(USE_POLARSSL_HAVEGE "Use the PolarSSL HAVEGE random generator key." OFF) +option(USE_MBEDTLS_TESTCERT "Link to the mbedTLS test certificate and key." OFF) +option(USE_MBEDTLS_HAVEGE "Use the mbedTLS HAVEGE random generator key." OFF) + option(USE_SHAREDMEMORY_API "Compile with Sharedmemory API support" OFF) if(USE_POLARSSL_TESTCERT OR USE_POLARSSL_HAVEGE) @@ -16,6 +26,12 @@ if(USE_POLARSSL_TESTCERT OR USE_POLARSSL_HAVEGE) endif(SSL MATCHES "openssl" OR SSL MATCHES "gnutls") endif(USE_POLARSSL_TESTCERT OR USE_POLARSSL_HAVEGE) +if(USE_MBEDTLS_TESTCERT OR USE_MBEDTLS_HAVEGE) + if(SSL MATCHES "openssl" OR SSL MATCHES "gnutls" OR SSL MATCHES "polarssl") + message(FATAL_ERROR "Selecting USE_MBEDTLS_TESTCERT or USE_MBEDTLS_HAVEGE implies SSL=mbedtls") + endif(SSL MATCHES "openssl" OR SSL MATCHES "gnutls" OR SSL MATCHES "polarssl") +endif(USE_MBEDTLS_TESTCERT OR USE_MBEDTLS_HAVEGE) + find_package(Libconfig REQUIRED) find_package(ProtobufC REQUIRED) include(CheckFunctionExists) @@ -31,6 +47,11 @@ if("${SSL}" STREQUAL "openssl") set(SSLIMP_LIBRARIES ${OPENSSL_LIBRARIES}) set(SSLIMP_INCLUDE_DIR ${OPENSSL_INCLUDE_DIR}) set(SSLIMP_LIBRARY_DIR ${OPENSSL_LIB_DIR}) + + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations") + endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + endif(OPENSSL_FOUND) elseif("${SSL}" STREQUAL "polarssl") find_package(PolarSSL REQUIRED) @@ -40,8 +61,16 @@ elseif("${SSL}" STREQUAL "polarssl") set(SSLIMP_INCLUDE_DIR ${POLARSSL_INCLUDE_DIR}) set(SSLIMP_LIBRARY_DIR ${POLARSSL_LIB_DIR}) endif(POLARSSL_FOUND) +elseif("${SSL}" STREQUAL "mbedtls") + find_package(mbedTLS REQUIRED) + if(MBEDTLS_FOUND) + set(USE_MBEDTLS ON) + set(SSLIMP_LIBRARIES ${MBEDTLS_LIBRARIES}) + set(SSLIMP_INCLUDE_DIR ${MBEDTLS_INCLUDE_DIR}) + set(SSLIMP_LIBRARY_DIR ${MBEDTLS_LIB_DIR}) + endif(MBEDTLS_FOUND) elseif("${SSL}" STREQUAL "gnutls") - find_package(GnuTLS REQUIRED) + find_package(GnuTLS 3 REQUIRED) if(GNUTLS_FOUND) set(USE_GNUTLS ON) set(SSLIMP_LIBRARIES ${GNUTLS_LIBRARIES}) @@ -68,6 +97,19 @@ else() set(LIBRT rt) endif() +if(USE_SHAREDMEMORY_API) + set(UMURMUR_MONITOR_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/tools/umurmur-monitor/" CACHE PATH "The path to the umurmur-monitor source directory") + option(BUILD_UMURMUR_MONITOR "Build the umurmur-monitor utility" OFF) + + if(BUILD_UMURMUR_MONITOR) + if(EXISTS "${UMURMUR_MONITOR_SOURCE_DIR}/CMakeLists.txt") + add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/tools/umurmur-monitor") + else() + message(FATAL_ERROR "Could not find umurmur-monitor source. Please specify UMURMUR_MONITOR_SOURCE_DIR") + endif() + endif() +endif() + set(SOURCE "") add_subdirectory(src) @@ -76,8 +118,8 @@ configure_file(src/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(umurmurd ${SOURCE}) -install(TARGETS umurmurd RUNTIME DESTINATION "bin") +add_executable(${PROJECT_NAME} ${SOURCE}) +install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "bin") find_path(OLD_CONFIG_FILE NAMES "umurmur.conf" PATHS ${CMAKE_INSTALL_PREFIX} PATH_SUFFIXES "etc") if(NOT OLD_CONFIG_FILE) @@ -86,4 +128,4 @@ endif(NOT OLD_CONFIG_FILE) add_definitions(${SSLIMP_CFLAGS}) -target_link_libraries(umurmurd ${LIBCONFIG_LIBRARIES} ${PROTOBUFC_LIBRARIES} ${SSLIMP_LIBRARIES} ${LIBRT} ${CRYPTO_LIBRARIES}) +target_link_libraries(${PROJECT_NAME} ${LIBCONFIG_LIBRARIES} ${PROTOBUFC_LIBRARIES} ${SSLIMP_LIBRARIES} ${LIBRT} ${CRYPTO_LIBRARIES})