52 行
936 B
CMake
52 行
936 B
CMake
cmake_minimum_required(VERSION 3.28)
|
|
project(csp_backend LANGUAGES CXX)
|
|
|
|
# Drogon 1.8.x on Ubuntu still uses legacy CMake commands.
|
|
cmake_policy(SET CMP0153 OLD)
|
|
|
|
find_package(Drogon CONFIG REQUIRED)
|
|
find_package(Catch2 3 REQUIRED)
|
|
|
|
add_library(csp_core
|
|
src/version.cc
|
|
src/db/sqlite_db.cc
|
|
src/app_state.cc
|
|
)
|
|
|
|
target_include_directories(csp_core PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_link_libraries(csp_core PUBLIC
|
|
SQLite3_lib
|
|
)
|
|
|
|
add_executable(csp_server
|
|
src/main.cc
|
|
src/health_controller.cc
|
|
)
|
|
|
|
target_include_directories(csp_server PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
)
|
|
|
|
target_link_libraries(csp_server PRIVATE
|
|
Drogon::Drogon
|
|
csp_core
|
|
)
|
|
|
|
enable_testing()
|
|
add_executable(csp_tests
|
|
tests/test_main.cc
|
|
tests/version_test.cc
|
|
tests/sqlite_db_test.cc
|
|
)
|
|
|
|
target_link_libraries(csp_tests PRIVATE
|
|
Catch2::Catch2WithMain
|
|
csp_core
|
|
)
|
|
|
|
include(CTest)
|
|
add_test(NAME csp_tests COMMAND csp_tests)
|