From b60d07070e24df82b870f413cdc0db5052f9e179 Mon Sep 17 00:00:00 2001 From: Mineplay Date: Sun, 18 Jan 2026 16:00:11 +0100 Subject: [PATCH] build(cmake): setup cmake build system for library and tests --- CMakeLists.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..378e70b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.10) +project(qnet C) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE SRC_FILES "${PROJECT_SOURCE_DIR}/src/*.c") +add_library(qnet STATIC ${SRC_FILES}) +target_include_directories(qnet PUBLIC ${PROJECT_SOURCE_DIR}/include) + +if (WIN32) + target_link_libraries(qnet PRIVATE ws2_32) +endif() + +if(MSVC) + target_compile_options(qnet PRIVATE /W4) +else() + target_compile_options(qnet PRIVATE -Wall -Wextra -pedantic) +endif() + +file(GLOB_RECURSE SRC_TEST_FILES "${PROJECT_SOURCE_DIR}/tests/*.c") +add_executable(qnet-test ${SRC_TEST_FILES}) + +target_include_directories(qnet-test PRIVATE ${PROJECT_SOURCE_DIR}/tests) +target_link_libraries(qnet-test qnet) \ No newline at end of file