73 lines
2.0 KiB
CMake
73 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(CommonwealthOnlineHost)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
find_package(Qt6 COMPONENTS
|
|
Core
|
|
Gui
|
|
Widgets
|
|
Network
|
|
Concurrent
|
|
REQUIRED
|
|
)
|
|
|
|
set(PROJECT_SOURCES
|
|
src/main.cpp
|
|
src/MainWindow.h
|
|
src/MainWindow.cpp
|
|
src/ConfigDialog.h
|
|
src/ConfigDialog.cpp
|
|
src/ServerProcess.h
|
|
src/ServerProcess.cpp
|
|
src/resources/resources.qrc
|
|
)
|
|
|
|
add_executable(CommonwealthOnlineHost ${PROJECT_SOURCES})
|
|
|
|
target_link_libraries(CommonwealthOnlineHost
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::Widgets
|
|
Qt6::Network
|
|
Qt6::Concurrent
|
|
)
|
|
|
|
# Windows-specific settings
|
|
if(WIN32)
|
|
set_target_properties(CommonwealthOnlineHost PROPERTIES
|
|
WIN32_EXECUTABLE ON
|
|
VS_DPI_AWARE "ON"
|
|
)
|
|
endif()
|
|
|
|
# Set output directory
|
|
set_target_properties(CommonwealthOnlineHost PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
|
|
# Stage the Python relay server next to the Host GUI executable so
|
|
# ServerProcess can find consumer_server_cli.py at runtime.
|
|
# Preserve a local commonwealth-server.json if the host already edited it.
|
|
set(CO_SERVER_SOURCE_DIR "${CMAKE_SOURCE_DIR}/server")
|
|
set(CO_SERVER_STAGE_DIR "$<TARGET_FILE_DIR:CommonwealthOnlineHost>/server")
|
|
set(CO_SERVER_STAGE_CONFIG "${CO_SERVER_STAGE_DIR}/commonwealth-server.json")
|
|
if(NOT EXISTS "${CO_SERVER_SOURCE_DIR}/consumer_server_cli.py")
|
|
message(FATAL_ERROR
|
|
"Bundled server source not found at ${CO_SERVER_SOURCE_DIR}/consumer_server_cli.py")
|
|
endif()
|
|
add_custom_command(TARGET CommonwealthOnlineHost POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${CO_SERVER_STAGE_DIR}"
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-DCO_SERVER_SOURCE_DIR=${CO_SERVER_SOURCE_DIR}
|
|
-DCO_SERVER_STAGE_DIR=${CO_SERVER_STAGE_DIR}
|
|
-DCO_SERVER_STAGE_CONFIG=${CO_SERVER_STAGE_CONFIG}
|
|
-P "${CMAKE_SOURCE_DIR}/cmake/stage_server.cmake"
|
|
COMMENT "Copying Python server next to CommonwealthOnlineHost.exe"
|
|
)
|