Add Visione backend foundation
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
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/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)
|
||||
Reference in New Issue
Block a user