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) find_package(OpenSSL REQUIRED) add_library(csp_core src/version.cc src/db/sqlite_db.cc src/app_state.cc src/services/crypto.cc src/services/auth_service.cc ) target_include_directories(csp_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries(csp_core PUBLIC SQLite3_lib OpenSSL::Crypto ) 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 tests/auth_service_test.cc ) target_link_libraries(csp_tests PRIVATE Catch2::Catch2WithMain csp_core ) include(CTest) add_test(NAME csp_tests COMMAND csp_tests)