cmake_minimum_required(VERSION 3.13) project(redis-starter-cpp LANGUAGES C CXX) if (NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 11) # Enable the C++23 standard endif() 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" ) 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 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)