50 lines
1.3 KiB
CMake
50 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(SocketServer VERSION 1.0)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
|
|
|
# Boost 및 의존성 찾기
|
|
find_package(Boost REQUIRED COMPONENTS system)
|
|
find_package(OpenSSL REQUIRED)
|
|
find_package(Protobuf REQUIRED)
|
|
|
|
# 컴파일 명령 추출 활성화 (LSP/IDE 용)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# proto 파일로부터 소스 코드(.pb.h, .pb.cc) 생성
|
|
file(GLOB PROTO_FILES "${CMAKE_CURRENT_SOURCE_DIR}/proto/*.proto")
|
|
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILES})
|
|
|
|
add_executable(Server
|
|
server/main.cpp
|
|
server/NetworkService.cpp
|
|
server/Session.cpp
|
|
server/PacketHandler.cpp
|
|
server/SessionManager.cpp
|
|
server/DatabaseManager.cpp
|
|
${PROTO_SRCS} ${PROTO_HDRS}
|
|
)
|
|
|
|
target_include_directories(Server PRIVATE include ${CMAKE_CURRENT_BINARY_DIR})
|
|
target_link_libraries(Server PRIVATE
|
|
Boost::system
|
|
OpenSSL::SSL
|
|
OpenSSL::Crypto
|
|
protobuf::libprotobuf
|
|
)
|
|
|
|
add_executable(Client
|
|
client/Client.cpp
|
|
client/main.cpp
|
|
${PROTO_SRCS} ${PROTO_HDRS}
|
|
)
|
|
target_include_directories(Client PRIVATE include ${CMAKE_CURRENT_BINARY_DIR})
|
|
target_link_libraries(Client PRIVATE
|
|
Boost::system
|
|
OpenSSL::SSL
|
|
OpenSSL::Crypto
|
|
protobuf::libprotobuf
|
|
)
|