beeta/chat-service/CMakeLists.txt
2026-01-05 22:54:27 -05:00

55 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(chat_service CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Find required packages
find_package(Drogon CONFIG REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(JSONCPP REQUIRED jsoncpp)
# Source files
set(SOURCES
src/main.cpp
src/controllers/ChatController.cpp
src/controllers/ChatWebSocketController.cpp
src/controllers/ModerationController.cpp
src/controllers/ChatAdminController.cpp
src/controllers/WatchSyncController.cpp
src/services/ChatService.cpp
src/services/RedisMessageStore.cpp
src/services/AuthService.cpp
src/services/ModerationService.cpp
src/services/StickerService.cpp
src/services/CensorService.cpp
src/middleware/ChatAuthMiddleware.cpp
)
# Create executable
add_executable(${PROJECT_NAME} ${SOURCES})
# Link libraries
target_link_libraries(${PROJECT_NAME} PRIVATE
Drogon::Drogon
hiredis
redis++
${JSONCPP_LIBRARIES}
ssl
crypto
z
uuid
pthread
)
# Include directories
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
${JSONCPP_INCLUDE_DIRS}
)
# Set output directory
set_target_properties(${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)