44 lines
1.3 KiB
CMake
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")
|
|
|