44 lines
2.1 KiB
CMake
44 lines
2.1 KiB
CMake
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 main.cpp)
|
|
|
|
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) |