Files
miniroute/CMakeLists.txt
2026-06-05 14:03:02 +02:00

44 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(miniroute
VERSION 0.1.0
LANGUAGES C
)
set(CMAKE_C_STANDARD 23)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
find_package(Threads REQUIRED)
# ---------------------------------------------------------
# Output directories
# ---------------------------------------------------------
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
foreach(OUTPUTCONFIG DEBUG RELEASE RELWITHDEBINFO MINSIZEREL)
string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG_UPPER)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG_UPPER} ${CMAKE_BINARY_DIR}/lib)
endforeach()
# Exec
file(GLOB_RECURSE SERVER_SRC CONFIGURE_DEPENDS src/*.c)
add_executable(miniroute ${SERVER_SRC})
target_link_libraries(miniroute PRIVATE ${CMAKE_THREAD_LIBS_INIT})
target_include_directories(miniroute PRIVATE
${PROJECT_SOURCE_DIR}/include
)
target_compile_options(miniroute PRIVATE
-Wall
-Wextra
-Wpedantic
-g
)
target_compile_definitions(miniroute PRIVATE)
set_target_properties(miniroute PROPERTIES OUTPUT_NAME "miniroute")