1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2025-07-01 14:37:10 +02:00
Files
SqMod/vendor/CivetWeb/CMakeLists.txt
Sandu Liviu Catalin f2b7499f85 Update libraries and make it build on windows.
Still gets some warnings because compilers have changed. But should work.
2025-06-25 22:34:23 +03:00

71 lines
2.4 KiB
CMake

# 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
if("${OPENSSL_VERSION_MAJOR}" STREQUAL "1")
if("${OPENSSL_VERSION_MINOR}" STREQUAL "1")
target_compile_definitions(CivetWeb PRIVATE OPENSSL_API_1_0=1)
message(STATUS "CivetWeb: OPENSSL_API_1_0")
else()
target_compile_definitions(CivetWeb PRIVATE OPENSSL_API_1_1=1)
message(STATUS "CivetWeb: OPENSSL_API_1_1")
endif()
else()
target_compile_definitions(CivetWeb PRIVATE OPENSSL_API_3_0=1)
message(STATUS "CivetWeb: OPENSSL_API_3_0")
endif()
else()
target_compile_definitions(CivetWeb PUBLIC NO_SSL=1)
message(STATUS "CivetWeb: OpenSSL was not found!")
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()
# Need Windows sockets if available
if(MSVC OR MSYS OR MINGW)
find_package(WinSock)
if (WINSOCK_FOUND)
target_link_libraries(CivetWeb PUBLIC ${WINSOCK_LIBRARIES})
endif()
endif()
# We need threading
find_package(Threads)
target_link_libraries(CivetWeb PUBLIC ${CMAKE_THREAD_LIBS_INIT})
# Other configs
target_compile_definitions(CivetWeb PUBLIC USE_STACK_SIZE=102400)