2025-09-09 17:16:32 +08:00
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
|
|
|
|
|
|
project(redis-starter-cpp LANGUAGES C CXX)
|
|
|
|
|
|
2025-09-09 17:55:56 +08:00
|
|
|
if (NOT CMAKE_CXX_STANDARD)
|
|
|
|
|
set(CMAKE_CXX_STANDARD 11) # Enable the C++23 standard
|
|
|
|
|
endif()
|
2025-09-09 17:16:32 +08:00
|
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -static-libgcc -static-libstdc++")
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -static-libgcc -static-libstdc++")
|
|
|
|
|
|
|
|
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
include(cmake/CPM.cmake)
|
|
|
|
|
|
|
|
|
|
CPMAddPackage(
|
|
|
|
|
NAME Boost
|
|
|
|
|
VERSION 1.89.0
|
|
|
|
|
URL https://github.com/boostorg/boost/releases/download/boost-1.89.0/boost-1.89.0-cmake.tar.xz
|
|
|
|
|
URL_HASH SHA256=67acec02d0d118b5de9eb441f5fb707b3a1cdd884be00ca24b9a73c995511f74
|
|
|
|
|
# SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/boost
|
|
|
|
|
OPTIONS "BOOST_ENABLE_CMAKE ON"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
CPMAddPackage(
|
|
|
|
|
NAME spdlog
|
|
|
|
|
VERSION 1.12.0
|
|
|
|
|
URL https://github.com/gabime/spdlog/archive/refs/tags/v1.12.0.zip
|
|
|
|
|
URL_HASH SHA256=6174bf8885287422a6c6a0312eb8a30e8d22bcfcee7c48a6d02d1835d7769232
|
|
|
|
|
OPTIONS "SPDLOG_BUILD_PIC ON"
|
|
|
|
|
)
|
|
|
|
|
|
2025-09-09 17:54:40 +08:00
|
|
|
|
2025-09-09 17:16:32 +08:00
|
|
|
file(GLOB_RECURSE SOURCE_FILES src/*.cpp src/*.cc)
|
|
|
|
|
add_executable(server ${SOURCE_FILES})
|
|
|
|
|
target_link_libraries(server PRIVATE
|
|
|
|
|
Threads::Threads
|
|
|
|
|
Boost::array
|
|
|
|
|
Boost::asio
|
|
|
|
|
Boost::filesystem
|
|
|
|
|
Boost::format
|
|
|
|
|
Boost::log
|
|
|
|
|
Boost::log_setup
|
2025-09-09 19:15:40 +08:00
|
|
|
Boost::signals2
|
2025-09-09 17:16:32 +08:00
|
|
|
Boost::property_tree
|
|
|
|
|
Boost::serialization
|
|
|
|
|
Boost::filesystem
|
|
|
|
|
Boost::dll
|
|
|
|
|
Boost::crc
|
|
|
|
|
Boost::range
|
|
|
|
|
Boost::foreach
|
|
|
|
|
Boost::timer
|
|
|
|
|
Boost::contract
|
|
|
|
|
spdlog::spdlog
|
|
|
|
|
# Poco::Foundation
|
|
|
|
|
# Poco::Net
|
|
|
|
|
# Poco::Util
|
|
|
|
|
)
|
|
|
|
|
target_include_directories(server PRIVATE src)
|