# Create the CivetWeb library add_library(CivetWeb STATIC include/civetweb.h civetweb.c mod_mbedtls.inl mod_zlib.inl openssl_dl.inl response.inl sha1.inl timer.inl wolfssl_extras.inl handle_form.inl md5.inl http2.inl ) # Configure include folders target_include_directories(CivetWeb PRIVATE ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(CivetWeb PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include) # Configure macro options if(WIN32 OR MINGW) target_compile_definitions(CivetWeb PRIVATE _WIN32_WINNT=0x0601) endif() # Generic macro options target_compile_definitions(CivetWeb PUBLIC USE_TIMERS=1 USE_WEBSOCKET=1 USE_IPV6=1 USE_HTTP2=1) # Look for SSL find_package(OpenSSL) # Check SSL status if (OPENSSL_FOUND) message(STATUS "CivetWeb: OpenSSL was found ${OPENSSL_VERSION}") target_link_libraries(CivetWeb PUBLIC OpenSSL::Crypto OpenSSL::SSL) string(REPLACE "." ";" OPENSSL_VERSION_LIST ${OPENSSL_VERSION}) list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR) list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR) list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_PATCH) # Tell the library what SSL version to expect target_compile_definitions(CivetWeb PRIVATE "OPENSSL_API_${OPENSSL_VERSION_MAJOR}_${OPENSSL_VERSION_MINOR}") message(STATUS "CivetWeb: OPENSSL_API_${OPENSSL_VERSION_MAJOR}_${OPENSSL_VERSION_MINOR}") else() target_compile_definitions(CivetWeb PUBLIC NO_SSL=1) endif() # Look for ZLib find_package(ZLIB) # Check ZLib status if (ZLIB_FOUND) message(STATUS "CivetWeb: ZLib was found") target_link_libraries(CivetWeb PUBLIC ZLIB::ZLIB) target_compile_definitions(CivetWeb PUBLIC USE_ZLIB=1) endif()