Files
2026-08-25 16:56:37 +08:00

53 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.22)
set(TARGET scum_simple_rcon)
project(${TARGET} LANGUAGES CXX)
add_library(${TARGET} SHARED
src/dllmain.cpp
src/SimpleRconMod.cpp
src/RconServer.cpp
src/CommandQueue.cpp
src/ScumBridge.cpp
src/OfflineAdminExecutor.cpp
src/RealChatDispatcher.cpp
)
target_compile_features(${TARGET} PRIVATE cxx_std_20)
target_include_directories(${TARGET} PRIVATE include)
target_compile_definitions(${TARGET} PRIVATE
WIN32_LEAN_AND_MEAN
NOMINMAX
_WINSOCK_DEPRECATED_NO_WARNINGS
)
if(MSVC)
target_compile_options(${TARGET} PRIVATE /permissive- /EHsc /bigobj)
endif()
if(NOT TARGET UE4SS)
message(FATAL_ERROR
"UE4SS target not found. Build this as a sibling project next to RE-UE4SS, "
"or add_subdirectory(RE-UE4SS) before add_subdirectory(scum_simple_rcon_ue4ss).")
endif()
target_link_libraries(${TARGET} PUBLIC UE4SS)
target_link_libraries(${TARGET} PRIVATE ws2_32)
set_target_properties(${TARGET} PROPERTIES
OUTPUT_NAME "main"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/package/ue4ss/Mods/scum_simple_rcon/dlls"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/package/ue4ss/Mods/scum_simple_rcon/dlls"
)
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/package/ue4ss/Mods/scum_simple_rcon"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/ue4ss/Mods/scum_simple_rcon/config.ini"
"${CMAKE_BINARY_DIR}/package/ue4ss/Mods/scum_simple_rcon/config.ini"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/ue4ss/Mods/scum_simple_rcon/enabled.txt"
"${CMAKE_BINARY_DIR}/package/ue4ss/Mods/scum_simple_rcon/enabled.txt"
)