73 lines
2.1 KiB
CMake
73 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(visione-backend VERSION 0.1.0 LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
option(USE_SYSTEM_DROGON "Use an installed Drogon package instead of CPM" OFF)
|
|
|
|
if (USE_SYSTEM_DROGON)
|
|
find_package(Drogon CONFIG REQUIRED)
|
|
else ()
|
|
set(CPM_SOURCE_CACHE "${CMAKE_CURRENT_SOURCE_DIR}/.cache/cpm" CACHE PATH "CPM dependency cache")
|
|
include(cmake/CPM.cmake)
|
|
|
|
CPMAddPackage(
|
|
NAME Drogon
|
|
GITHUB_REPOSITORY drogonframework/drogon
|
|
GIT_TAG v1.9.13
|
|
OPTIONS
|
|
"BUILD_CTL OFF"
|
|
"BUILD_EXAMPLES OFF"
|
|
"BUILD_ORM ON"
|
|
"BUILD_MYSQL ON"
|
|
"BUILD_POSTGRESQL OFF"
|
|
"BUILD_REDIS OFF"
|
|
"BUILD_SQLITE OFF"
|
|
"BUILD_BROTLI OFF"
|
|
"BUILD_YAML_CONFIG OFF"
|
|
"BUILD_TESTING OFF"
|
|
)
|
|
endif ()
|
|
|
|
set(APP_SOURCES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controllers/ApiController.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controllers/AdminController.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controllers/AuthController.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/controllers/ReportController.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Auth.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Cors.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Crypto.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Email.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/GeoJson.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Http.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/common/Validation.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/plugins/RequestLogger.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/repositories/MigrationRunner.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/repositories/Sql.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/services/AdminService.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/services/AuthService.cc
|
|
${CMAKE_CURRENT_SOURCE_DIR}/services/ReportService.cc
|
|
)
|
|
|
|
add_executable(${PROJECT_NAME}
|
|
main.cc
|
|
${APP_SOURCES}
|
|
)
|
|
|
|
target_include_directories(${PROJECT_NAME}
|
|
PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
PRIVATE
|
|
Drogon::Drogon
|
|
)
|
|
|
|
enable_testing()
|
|
add_subdirectory(test)
|