]> granicus.if.org Git - transmission/commitdiff
Add support for WolfSSL
authorMike Gelfand <mikedld@mikedld.com>
Sun, 15 Mar 2015 16:57:30 +0000 (16:57 +0000)
committerMike Gelfand <mikedld@mikedld.com>
Sun, 15 Mar 2015 16:57:30 +0000 (16:57 +0000)
It was announced on March 5th that CyaSSL changes name to WolfSSL,
and version 3.4.0 has been released under that new name. Tune
FindCyaSSL.cmake a bit to probe for both libraries. Fortunately,
compatibility headers are provided so I didn't have to touch the
code at all for now.

cmake/FindCyaSSL.cmake

index f428fb794eafe1191adee4812c60ad42856f0cbf..1f301aa522a2d8ccf29ecdd4fe913ad6d6935b76 100644 (file)
@@ -8,21 +8,36 @@ if(CYASSL_PREFER_STATIC_LIB)
 endif()
 
 if(UNIX)
-  find_package(PkgConfig QUIET)
-  pkg_check_modules(_CYASSL QUIET cyassl)
+    find_package(PkgConfig QUIET)
+    pkg_check_modules(_WOLFSSL QUIET wolfssl)
 endif()
 
-find_path(CYASSL_INCLUDE_DIR NAMES cyassl/version.h HINTS ${_CYASSL_INCLUDEDIR})
-find_library(CYASSL_LIBRARY NAMES cyassl HINTS ${_CYASSL_LIBDIR})
+find_path(WOLFSSL_INCLUDE_DIR NAMES wolfssl/version.h HINTS ${_WOLFSSL_INCLUDEDIR})
+find_library(WOLFSSL_LIBRARY NAMES wolfssl HINTS ${_WOLFSSL_LIBDIR})
+if(WOLFSSL_INCLUDE_DIR AND WOLFSSL_LIBRARY)
+    set(CYASSL_INCLUDE_DIR ${WOLFSSL_INCLUDE_DIR})
+    set(CYASSL_LIBRARY ${WOLFSSL_LIBRARY})
+    set(CYASSL_VERSION ${_WOLFSSL_VERSION})
+    set(CYASSL_IS_WOLFSSL ON)
+else()
+    if(UNIX)
+        pkg_check_modules(_CYASSL QUIET cyassl)
+    endif()
+
+    find_path(CYASSL_INCLUDE_DIR NAMES cyassl/version.h HINTS ${_CYASSL_INCLUDEDIR})
+    find_library(CYASSL_LIBRARY NAMES cyassl HINTS ${_CYASSL_LIBDIR})
+    set(CYASSL_VERSION ${_CYASSL_VERSION})
+    set(CYASSL_IS_WOLFSSL OFF)
+endif()
 
-if(CYASSL_INCLUDE_DIR)
-    if(_CYASSL_VERSION)
-        set(CYASSL_VERSION ${_CYASSL_VERSION})
+if(NOT CYASSL_VERSION AND CYASSL_INCLUDE_DIR)
+    if(CYASSL_IS_WOLFSSL)
+        file(STRINGS "${CYASSL_INCLUDE_DIR}/wolfssl/version.h" CYASSL_VERSION_STR REGEX "^#define[\t ]+LIBWOLFSSL_VERSION_STRING[\t ]+\"[^\"]+\"")
     else()
         file(STRINGS "${CYASSL_INCLUDE_DIR}/cyassl/version.h" CYASSL_VERSION_STR REGEX "^#define[\t ]+LIBCYASSL_VERSION_STRING[\t ]+\"[^\"]+\"")
-        if(CYASSL_VERSION_STR MATCHES "\"([^\"]+)\"")
-            set(CYASSL_VERSION "${CMAKE_MATCH_1}")
-        endif()
+    endif()
+    if(CYASSL_VERSION_STR MATCHES "\"([^\"]+)\"")
+        set(CYASSL_VERSION "${CMAKE_MATCH_1}")
     endif()
 endif()
 
@@ -39,7 +54,7 @@ find_package_handle_standard_args(CyaSSL
         CYASSL_VERSION
 )
 
-mark_as_advanced(CYASSL_INCLUDE_DIR CYASSL_LIBRARY)
+mark_as_advanced(WOLFSSL_INCLUDE_DIR WOLFSSL_LIBRARY CYASSL_INCLUDE_DIR CYASSL_LIBRARY)
 
 if(CYASSL_PREFER_STATIC_LIB)
     set(CMAKE_FIND_LIBRARY_SUFFIXES ${CYASSL_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})