mbedTLS 2.x support
[umurmur.git] / CMakeLists.txt
index 1c2130fd4437ff05a7a29f9e172c6dcce19aff90..42e0b3e55d9e4d37abb180a0f5b14b8667e7393c 100644 (file)
@@ -8,9 +8,16 @@ 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)
@@ -19,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)
@@ -34,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)
@@ -43,6 +61,14 @@ 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 3 REQUIRED)
   if(GNUTLS_FOUND)