Files
AntJn 0502bd62a4 Add new services
password_hasher

auth_services
2026-05-03 17:01:12 +03:00

83 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.22)
project(auth_service 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)
include(CTest)
enable_testing()
find_package(SQLite3 REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(ARGON2 REQUIRED IMPORTED_TARGET libargon2)
add_subdirectory(submodules/drogon)
add_subdirectory(submodules/json)
add_subdirectory(submodules/Catch2)
add_executable(auth_service
src/main.cpp
src/application/application.cpp
src/http/controllers/health_controller.cpp
src/db/sqllite_db.cpp
src/db/statement.cpp
src/db/transaction.cpp
src/db/migrations_runner.cpp
src/repo/user_repository.cpp
src/repo/session_repository.cpp
src/util/time_utils.cpp
src/security/session_token_service.cpp
src/util/validation.cpp
src/security/password_hasher.cpp
src/service/auth_service.cpp
src/http/controllers/auth_controller.cpp
)
target_include_directories(auth_service
PRIVATE
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)
target_compile_options(auth_service PRIVATE
-Wall
-Wextra
-Wpedantic
)
target_link_libraries(auth_service PRIVATE
drogon
SQLite::SQLite3
nlohmann_json::nlohmann_json
OpenSSL::Crypto
PkgConfig::ARGON2
)
add_executable(auth_service_tests
tests/smoke_test.cpp
)
target_include_directories(auth_service_tests
PRIVATE
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)
target_compile_options(auth_service_tests PRIVATE
-Wall
-Wextra
-Wpedantic
)
target_link_libraries(auth_service_tests PRIVATE
Catch2::Catch2WithMain
nlohmann_json::nlohmann_json
)
include(${PROJECT_SOURCE_DIR}/submodules/Catch2/extras/Catch.cmake)
catch_discover_tests(auth_service_tests)