initial commit

This commit is contained in:
2026-02-22 00:33:44 +01:00
commit f47dc33f3c
5 changed files with 291 additions and 0 deletions

57
CMakeLists.txt Normal file
View File

@@ -0,0 +1,57 @@
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
$<$<C_COMPILER_ID:GNU,Clang>:
-Wall
-Wextra
-Wpedantic
-Wshadow
-Wformat=2
-Wconversion
-Wsign-conversion
-Wnull-dereference
-Wdouble-promotion
-Wstrict-prototypes
-Wmissing-prototypes
>
$<$<C_COMPILER_ID:GNU>:
-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}")