Files
Applications/LCDLLN-GPT/server-master/CMakeLists.txt
T
2026-03-16 18:26:47 +01:00

44 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.18)
project(LCDLLN_Server VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# Options
option(BUILD_MASTER "Build Master Server" ON)
option(BUILD_SHARD "Build Shard Server" ON)
# Include directories
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
)
# Find packages
find_package(OpenSSL REQUIRED)
find_package(MySQLConnectorCPP REQUIRED)
# External libraries
find_package(Argon2 REQUIRED)
find_package(spdlog REQUIRED)
find_package(inih REQUIRED)
# Sources
file(GLOB SERVER_SOURCES "src/*.cpp")
if(BUILD_MASTER)
add_executable(master_server ${SERVER_SOURCES})
target_compile_definitions(master_server PRIVATE BUILD_MASTER)
target_link_libraries(master_server PRIVATE OpenSSL::SSL OpenSSL::Crypto spdlog::spdlog MySQLConnectorCPP::mysqlcppconn argon2 inih)
endif()
if(BUILD_SHARD)
add_executable(shard_server ${SERVER_SOURCES})
target_compile_definitions(shard_server PRIVATE BUILD_SHARD)
target_link_libraries(shard_server PRIVATE OpenSSL::SSL OpenSSL::Crypto spdlog::spdlog argon2 inih)
endif()
# Output directories
set_target_properties(master_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set_target_properties(shard_server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)