parent
fe2a2f46c9
commit
a0618b0c07
|
@ -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()
|
|
@ -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("")
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue