From ca8164fde457cc5b970b91d89ea083655683add9 Mon Sep 17 00:00:00 2001 From: Yaroslav Gurov Date: Sat, 28 Mar 2026 02:41:49 +0100 Subject: [PATCH] feat: support full-featured cmake install --- client/CMakeLists.txt | 10 ++++++++++ cmake/platform_settings.cmake | 4 ++++ service/server/CMakeLists.txt | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index b22162fb2..f10ff03bd 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -230,3 +230,13 @@ if(COMMAND qt_finalize_executable) else() qt_finalize_target(${PROJECT}) endif() + +install(TARGETS ${PROJECT} DESTINATION ".") +install(FILES $ DESTINATION ".") + +qt_generate_deploy_qml_app_script( + TARGET ${PROJECT} + OUTPUT_SCRIPT QT_DEPLOY_SCRIPT + NO_UNSUPPORTED_PLATFORM_ERROR +) +install(SCRIPT ${QT_DEPLOY_SCRIPT}) diff --git a/cmake/platform_settings.cmake b/cmake/platform_settings.cmake index ad1201e8c..6190912c2 100644 --- a/cmake/platform_settings.cmake +++ b/cmake/platform_settings.cmake @@ -24,3 +24,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android") "-c=tools.build:exelinkflags=['-Wl,-z,max-page-size=16384']" CACHE STRING "" FORCE) endif() + +if (WIN32) + set(CMAKE_INSTALL_BINDIR ".") +endif() diff --git a/service/server/CMakeLists.txt b/service/server/CMakeLists.txt index 33173e82b..5356e72f5 100644 --- a/service/server/CMakeLists.txt +++ b/service/server/CMakeLists.txt @@ -354,10 +354,11 @@ endif() add_custom_command( TARGET ${PROJECT} POST_BUILD COMMAND ${CMAKE_COMMAND} -E $,copy_directory,true> - ${CMAKE_SOURCE_DIR}/deploy/data/${DEPLOY_PLATFORM_PATH} + "${CMAKE_SOURCE_DIR}/deploy/data/${DEPLOY_PLATFORM_PATH}" $ COMMAND_EXPAND_LISTS ) +install(DIRECTORY "${CMAKE_SOURCE_DIR}/deploy/data/${DEPLOY_PLATFORM_PATH}/" DESTINATION ".") if (WIN32) find_package(awg-windows REQUIRED) @@ -384,3 +385,34 @@ add_custom_command(TARGET ${PROJECT} POST_BUILD ${BLOBS} $ ) +install(FILES ${BLOBS} DESTINATION ".") + +# install drivers +if (WIN32) + find_package(tap-windows6 REQUIRED) + add_custom_command(TARGET ${PROJECT} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${TAP_WINDOWS6_BIN}" + "$/tap" + ) + install(DIRECTORY "${TAP_WINDOWS6_BIN}/" DESTINATION "tap") + + find_package(win-split-tunnel REQUIRED) + add_custom_command(TARGET ${PROJECT} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${WIN_SPLIT_TUNNEL_BIN}" + "$" + ) + install(DIRECTORY "${WIN_SPLIT_TUNNEL_BIN}/" DESTINATION ".") +endif() + +# install target +install(TARGETS ${PROJECT} DESTINATION ".") +install(FILES $ DESTINATION ".") + +qt_generate_deploy_app_script( + TARGET ${PROJECT} + OUTPUT_SCRIPT QT_DEPLOY_SCRIPT + NO_UNSUPPORTED_PLATFORM_ERROR +) +install(SCRIPT ${QT_DEPLOY_SCRIPT})