# The server. Built as part of the game's desktop build, or on its own (for the VPS, without SDL): # cmake -S server -B build-server -DCMAKE_BUILD_TYPE=Release && cmake --build build-server cmake_minimum_required(VERSION 3.24) project(smack_a_brother_server LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(EXTERNAL ${CMAKE_CURRENT_SOURCE_DIR}/../external) if(NOT TARGET datachannel-static) set(NO_MEDIA ON CACHE BOOL "" FORCE) set(NO_EXAMPLES ON CACHE BOOL "" FORCE) set(NO_TESTS ON CACHE BOOL "" FORCE) add_subdirectory(${EXTERNAL}/libdatachannel ${CMAKE_BINARY_DIR}/libdatachannel EXCLUDE_FROM_ALL) endif() if(NOT TARGET simdjson) add_library(simdjson STATIC ${EXTERNAL}/simdjson/singleheader/simdjson.cpp) target_include_directories(simdjson SYSTEM PUBLIC ${EXTERNAL}/simdjson/singleheader) target_compile_definitions(simdjson PUBLIC SIMDJSON_EXCEPTIONS=0) endif() add_executable(smack_a_brother_server server.cpp) target_include_directories(smack_a_brother_server PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../src) target_link_libraries(smack_a_brother_server PRIVATE LibDataChannel::LibDataChannelStatic simdjson) set_target_properties(smack_a_brother_server PROPERTIES OUTPUT_NAME smack-a-brother-server)