Files
rdp-proxy/workers/rdp-worker/CMakeLists.txt
T
2026-04-28 22:29:50 +03:00

147 lines
3.7 KiB
CMake

cmake_minimum_required(VERSION 3.22)
project(rdp_worker LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
find_package(PkgConfig REQUIRED)
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(Boost REQUIRED)
pkg_check_modules(FREERDP REQUIRED IMPORTED_TARGET freerdp2)
pkg_check_modules(FREERDP_CLIENT REQUIRED IMPORTED_TARGET freerdp-client2)
pkg_check_modules(WINPR REQUIRED IMPORTED_TARGET winpr2)
set(RDP_WORKER_COMMON_SOURCES
src/adapter/adapter_event_router.cpp
src/adapter/rdp_adapter_runtime.cpp
src/adapter/service_adapter_protocol.cpp
src/common/json.cpp
src/common/logger.cpp
src/common/time.cpp
src/cursor/cursor_adapter.cpp
src/cursor/cursor_update.cpp
src/graphics/graphics_adapter.cpp
src/graphics/render_update.cpp
src/config/config.cpp
src/coordination/redis_client.cpp
src/coordination/control_plane.cpp
src/dataplane/direct_wss_server.cpp
src/dataplane/token_validator.cpp
src/runtime/direct_bind_policy.cpp
src/runtime/session_manager.cpp
src/runtime/session_runtime.cpp
src/freerdp/rdp_runtime.cpp
)
add_executable(rdp-worker
src/main.cpp
${RDP_WORKER_COMMON_SOURCES}
)
add_executable(rdp-worker-dataplane-token-probe
src/tools/data_plane_token_probe.cpp
src/common/json.cpp
src/dataplane/token_validator.cpp
)
add_executable(rdp-worker-dataplane-bind-probe
src/tools/data_plane_bind_probe.cpp
src/runtime/direct_bind_policy.cpp
)
add_executable(rdp-worker-graphics-adapter-probe
src/tools/graphics_adapter_probe.cpp
src/graphics/graphics_adapter.cpp
src/graphics/render_update.cpp
)
add_executable(rdp-worker-cursor-adapter-probe
src/tools/cursor_adapter_probe.cpp
src/common/json.cpp
src/cursor/cursor_adapter.cpp
src/cursor/cursor_update.cpp
)
add_executable(rdp-worker-service-adapter-protocol-probe
src/tools/service_adapter_protocol_probe.cpp
src/adapter/service_adapter_protocol.cpp
)
target_include_directories(rdp-worker
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(rdp-worker-dataplane-token-probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(rdp-worker-dataplane-bind-probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(rdp-worker-graphics-adapter-probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(rdp-worker-cursor-adapter-probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_include_directories(rdp-worker-service-adapter-protocol-probe
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
target_link_libraries(rdp-worker
PRIVATE
Threads::Threads
OpenSSL::SSL
OpenSSL::Crypto
Boost::headers
PkgConfig::FREERDP
PkgConfig::FREERDP_CLIENT
PkgConfig::WINPR
)
target_link_libraries(rdp-worker-dataplane-token-probe
PRIVATE
OpenSSL::Crypto
Boost::headers
)
target_link_libraries(rdp-worker-dataplane-bind-probe
PRIVATE
Boost::headers
)
if(WIN32)
target_link_libraries(rdp-worker PRIVATE ws2_32)
endif()
include(GNUInstallDirs)
install(TARGETS rdp-worker rdp-worker-dataplane-token-probe rdp-worker-dataplane-bind-probe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(TARGETS rdp-worker-graphics-adapter-probe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(TARGETS rdp-worker-cursor-adapter-probe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(TARGETS rdp-worker-service-adapter-protocol-probe
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)