Begin support ssl

Signed-off-by: Jianhui Zhao <jianhuizhao329@gmail.com>
main
Jianhui Zhao 2017-11-09 18:05:32 +08:00
parent fe2a2f46c9
commit a0618b0c07
4 changed files with 95 additions and 1 deletions

View File

@ -0,0 +1,62 @@
if(CYASSL_PREFER_STATIC_LIB)
set(CYASSL_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(WIN32)
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
endif()
if(UNIX)
find_package(PkgConfig QUIET)
pkg_check_modules(_WOLFSSL QUIET wolfssl)
endif()
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(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 ]+\"[^\"]+\"")
endif()
if(CYASSL_VERSION_STR MATCHES "\"([^\"]+)\"")
set(CYASSL_VERSION "${CMAKE_MATCH_1}")
endif()
endif()
set(CYASSL_INCLUDE_DIRS ${CYASSL_INCLUDE_DIR})
set(CYASSL_LIBRARIES ${CYASSL_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(CyaSSL
REQUIRED_VARS
CYASSL_LIBRARY
CYASSL_INCLUDE_DIR
VERSION_VAR
CYASSL_VERSION
)
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})
unset(CYASSL_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
endif()

View File

@ -4,14 +4,36 @@ set(UHTTP_VERSION_MINOR 1)
include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Check the necessary Libraries # Check the third party Libraries
find_package(Libev REQUIRED) find_package(Libev REQUIRED)
find_package(HttpParser REQUIRED) find_package(HttpParser REQUIRED)
find_package(OpenSSL)
find_package(CyaSSL)
include_directories(${LIBEV_INCLUDE_DIRS} ${HTTPPARSER_INCLUDE_DIRS}) include_directories(${LIBEV_INCLUDE_DIRS} ${HTTPPARSER_INCLUDE_DIRS})
set(EXTRA_LIBS ${LIBEV_LIBRARIES} ${HTTPPARSER_LIBRARIES}) set(EXTRA_LIBS ${LIBEV_LIBRARIES} ${HTTPPARSER_LIBRARIES})
set(SOURCE_FILES uhttp.c uhttp_log.c uhttp_buf.c) set(SOURCE_FILES uhttp.c uhttp_log.c uhttp_buf.c)
set(UHTTP_FOUND_SSL OFF)
option(UHTTP_DISABLE_SSL "Disable ssl support" OFF)
if(NOT UHTTP_DISABLE_SSL)
if(OPENSSL_FOUND)
set(UHTTP_FOUND_SSL ON)
list(APPEND EXTRA_LIBS ${OPENSSL_LIBRARIES})
include_directories(${OPENSSL_INCLUDE_DIR})
elseif(CYASSL_FOUND)
set(UHTTP_FOUND_SSL ON)
list(APPEND EXTRA_LIBS ${CYASSL_LIBRARIES})
include_directories(${CYASSL_INCLUDE_DIR})
endif()
endif()
if(UHTTP_FOUND_SSL)
list(APPEND SOURCE_FILES uhttp_ssl.c)
endif()
add_library(uhttp SHARED ${SOURCE_FILES}) add_library(uhttp SHARED ${SOURCE_FILES})
set_target_properties(uhttp PROPERTIES VERSION ${UHTTP_VERSION_MAJOR}.${UHTTP_VERSION_MINOR}) set_target_properties(uhttp PROPERTIES VERSION ${UHTTP_VERSION_MAJOR}.${UHTTP_VERSION_MINOR})
target_link_libraries(uhttp ${EXTRA_LIBS}) target_link_libraries(uhttp ${EXTRA_LIBS})
@ -28,3 +50,9 @@ install(
TARGETS uhttp LIBRARY TARGETS uhttp LIBRARY
DESTINATION lib DESTINATION lib
) )
message("")
message(STATUS "UHTTP_VERSION = ${UHTTP_VERSION_MAJOR}.${UHTTP_VERSION_MINOR}")
message(STATUS "UHTTP_DISABLE_SSL = ${UHTTP_DISABLE_SSL}")
message(STATUS "UHTTP_FOUND_SSL = ${UHTTP_FOUND_SSL}")
message("")

View File

@ -5,4 +5,8 @@
#define UHTTP_VERSION_MINOR @UHTTP_VERSION_MINOR@ #define UHTTP_VERSION_MINOR @UHTTP_VERSION_MINOR@
#define UHTTP_VERSION_STRING "@UHTTP_VERSION_MAJOR@.@UHTTP_VERSION_MINOR@" #define UHTTP_VERSION_STRING "@UHTTP_VERSION_MAJOR@.@UHTTP_VERSION_MINOR@"
#define UHTTP_SSL_ENABLED @SSL_ENABLED@
#define UHTTP_USE_OPENSSL @USE_OPENSSL@
#define UHTTP_USE_CYASSL @USE_CYASSL@
#endif #endif

0
src/uhttp_ssl.c 100644
View File