117 lines
3.4 KiB
CMake
Executable File
117 lines
3.4 KiB
CMake
Executable File
# The version number.
|
|
set(UHTTP_VERSION_MAJOR 0)
|
|
set(UHTTP_VERSION_MINOR 2)
|
|
set(UHTTP_VERSION_PATCH 1)
|
|
|
|
# Check the third party Libraries
|
|
find_package(Libev REQUIRED)
|
|
find_package(OpenSSL)
|
|
find_package(CyaSSL)
|
|
find_package(Lua)
|
|
|
|
include_directories(${LIBEV_INCLUDE_DIR} ${LUA_INCLUDE_DIR})
|
|
set(EXTRA_LIBS ${LIBEV_LIBRARIES} ${LUA_LIBRARIES})
|
|
set(SOURCE_FILES uhttp.c log.c buf.c ssl.c parser.c template.c)
|
|
|
|
set(UHTTP_DEBUG_CONFIG 0)
|
|
option(UHTTP_DEBUG "Turn on debug" OFF)
|
|
if(UHTTP_DEBUG)
|
|
set(UHTTP_DEBUG_CONFIG 1)
|
|
endif()
|
|
|
|
option(UHTTP_DISABLE_SSL "Disable ssl support" OFF)
|
|
option(UHTTP_USE_OPENSSL "Explicit use OpenSSL as SSL backend" OFF)
|
|
option(UHTTP_USE_CYASSL "Explicit use CyaSSL as SSL backend" OFF)
|
|
|
|
set(UHTTP_SSL_ENABLED OFF)
|
|
set(UHTTP_SSL_ENABLED_CONFIG 0)
|
|
set(UHTTP_USE_OPENSSL_CONFIG 0)
|
|
set(UHTTP_USE_CYASSL_CONFIG 0)
|
|
|
|
if(NOT UHTTP_DISABLE_SSL)
|
|
if(UHTTP_USE_OPENSSL)
|
|
if(NOT OPENSSL_FOUND)
|
|
message(FATAL_ERROR "Could NOT find OpenSSL")
|
|
endif()
|
|
|
|
set(UHTTP_SSL_ENABLED ON)
|
|
set(UHTTP_SSL_ENABLED_CONFIG 1)
|
|
set(UHTTP_USE_OPENSSL_CONFIG 1)
|
|
|
|
list(APPEND EXTRA_LIBS ${OPENSSL_LIBRARIES})
|
|
include_directories(${OPENSSL_INCLUDE_DIR})
|
|
elseif(UHTTP_USE_CYASSL)
|
|
if (NOT CYASSL_FOUND)
|
|
message(FATAL_ERROR "Could NOT find CyaSSL")
|
|
endif()
|
|
|
|
set(UHTTP_SSL_ENABLED ON)
|
|
set(UHTTP_SSL_ENABLED_CONFIG 1)
|
|
set(UHTTP_USE_CYASSL_CONFIG 1)
|
|
|
|
list(APPEND EXTRA_LIBS ${CYASSL_LIBRARIES})
|
|
include_directories(${CYASSL_INCLUDE_DIR})
|
|
endif()
|
|
|
|
if(NOT UHTTP_SSL_ENABLED)
|
|
if(OPENSSL_FOUND)
|
|
set(UHTTP_SSL_ENABLED ON)
|
|
set(UHTTP_SSL_ENABLED_CONFIG 1)
|
|
set(UHTTP_USE_OPENSSL_CONFIG 1)
|
|
|
|
list(APPEND EXTRA_LIBS ${OPENSSL_LIBRARIES})
|
|
include_directories(${OPENSSL_INCLUDE_DIR})
|
|
elseif(CYASSL_FOUND)
|
|
set(UHTTP_SSL_ENABLED ON)
|
|
set(UHTTP_SSL_ENABLED_CONFIG 1)
|
|
set(UHTTP_USE_CYASSL_CONFIG 1)
|
|
|
|
list(APPEND EXTRA_LIBS ${CYASSL_LIBRARIES})
|
|
include_directories(${CYASSL_INCLUDE_DIR})
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
add_library(uhttp SHARED ${SOURCE_FILES})
|
|
set_target_properties(uhttp PROPERTIES VERSION ${UHTTP_VERSION_MAJOR}.${UHTTP_VERSION_MINOR}.${UHTTP_VERSION_PATCH})
|
|
target_link_libraries(uhttp ${EXTRA_LIBS})
|
|
|
|
# configure a header file to pass some of the CMake settings to the source code
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/uhttp/config.h)
|
|
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/include/uhttp/config.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/uhttp.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/log.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/buf.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/str.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp/parser.h
|
|
DESTINATION
|
|
include/uhttp
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/uhttp.h
|
|
DESTINATION
|
|
include
|
|
)
|
|
|
|
install(
|
|
TARGETS uhttp LIBRARY
|
|
DESTINATION lib
|
|
)
|
|
|
|
message("")
|
|
message(STATUS "UHTTP_VERSION: ${UHTTP_VERSION_MAJOR}.${UHTTP_VERSION_MINOR}.${UHTTP_VERSION_PATCH}")
|
|
if(UHTTP_USE_OPENSSL_CONFIG)
|
|
message(STATUS "UHTTP_SSL_ENABLED: OpenSSL")
|
|
elseif(UHTTP_USE_CYASSL_CONFIG)
|
|
message(STATUS "UHTTP_SSL_ENABLED: CyaSSL")
|
|
else()
|
|
message(STATUS "UHTTP_SSL_ENABLED: None")
|
|
endif()
|
|
message(STATUS "DEBUG: ${UHTTP_DEBUG}")
|
|
message("")
|