cmake_minimum_required(VERSION 3.15) project(SpaceGameServer) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Подключаем зависимости нашего движка include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ThirdParty.cmake) # Настройка флагов для тяжелых шаблонов Boost if (MSVC) add_compile_options(/bigobj) endif() # Добавляем скомпилированные компоненты Boost через относительные пути # CMake сам создаст цели boost_system и др. add_subdirectory("${BOOST_SRC_DIR}/libs/system" boost-system-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/assert" boost-assert-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/config" boost-config-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/throw_exception" boost-throw_exception-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/variant2" boost-variant2-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/mp11" boost-mp11-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/winapi" boost-winapi-build EXCLUDE_FROM_ALL) add_subdirectory("${BOOST_SRC_DIR}/libs/predef" boost-predef-build EXCLUDE_FROM_ALL) # EXCLUDE_FROM_ALL гарантирует, что мы собираем только то, что линкуем # Исполняемый файл сервера add_executable(Server server.cpp ../src/network/ClientState.h ) target_include_directories(Server PRIVATE ${BOOST_SRC_DIR}) # Линковка target_link_libraries(Server PRIVATE boost_system # Скомпилированная часть для error_code eigen_external_lib # Если планируешь использовать математику на сервере ) if(WIN32) target_link_libraries(Server PRIVATE ws2_32 mswsock) endif() # Дополнительный макрос, чтобы Asio знал, что мы работаем без устаревших функций target_compile_definitions(Server PRIVATE BOOST_ASIO_NO_DEPRECATED)