cmake_minimum_required(VERSION 3.15) project(Webserver) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # Generate compile_commands.json (for clangd, IDEs, etc.) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Find OpenSSL (includes both libssl and libcrypto) find_package(OpenSSL REQUIRED) # Source files set(SOURCES src/main.c ) add_executable(${PROJECT_NAME} ${SOURCES}) # Include OpenSSL headers target_include_directories(${PROJECT_NAME} PRIVATE ${OPENSSL_INCLUDE_DIR} ) # Link against OpenSSL libraries # OpenSSL::SSL → libssl # OpenSSL::Crypto → libcrypto target_link_libraries(${PROJECT_NAME} PRIVATE OpenSSL::SSL OpenSSL::Crypto ) # Compiler warnings + debug flags (GCC/Clang) target_compile_options(${PROJECT_NAME} PRIVATE $<$: -Wall -Wextra -Wpedantic -Wshadow -Wformat=2 -Wconversion -Wsign-conversion -Wnull-dereference -Wdouble-promotion -Wstrict-prototypes -Wmissing-prototypes > $<$: -fanalyzer # GCC static analyzer > ) # Optional: print found versions for debugging message(STATUS "OpenSSL version: ${OPENSSL_VERSION}") message(STATUS "OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}") message(STATUS "OpenSSL libraries: ${OPENSSL_LIBRARIES}")