Skip to content

Commit 624c777

Browse files
Collect the correct QT dlls on Windows
1 parent 93427d3 commit 624c777

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

cmake/windows/BundleWindows.cmake.in

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,23 @@ set(CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@")
88

99
# Set windeployqt args
1010
set(ARGS --dry-run --no-opengl-sw --list mapping)
11+
12+
find_program(QT_PATHS "qtpaths.bat" HINTS ENV "@CMAKE_PREFIX_PATH@" PATH_SUFFIXES bin)
13+
if(QT_PATHS)
14+
list(APPEND ARGS "--qtpaths \"${QT_PATHS}\"")
15+
endif()
16+
1117
if(@QT_VERSION_MAJOR@ EQUAL 5)
12-
set(EXTRA_ARGS --no-angle)
18+
list(APPEND ARGS --no-angle)
1319
endif()
1420

1521
if(EXISTS @CMAKE_BINARY_DIR@/bin/@PROJECT_NAME@@CMAKE_EXECUTABLE_SUFFIX@)
1622
# Collect the runtime libraries
17-
get_filename_component(QT_BIN_DIR "${QMAKE_EXECUTABLE}" DIRECTORY)
1823
execute_process(
19-
COMMAND "${CMAKE_COMMAND}" -E env "PATH=${QT_BIN_DIR}" "@WINDEPLOYQT_EXECUTABLE@"
24+
COMMAND "${CMAKE_COMMAND}" -E env "PATH=@QT_BIN_DIR@" "@WINDEPLOYQT_EXECUTABLE@"
2025
${ARGS}
21-
${EXTRA_ARGS}
2226
"@CMAKE_BINARY_DIR@/bin/@PROJECT_NAME@@CMAKE_EXECUTABLE_SUFFIX@"
23-
WORKING_DIRECTORY "${QT_BIN_DIR}/.."
27+
WORKING_DIRECTORY "@QT_BIN_DIR@/.."
2428
OUTPUT_VARIABLE DEPS
2529
OUTPUT_STRIP_TRAILING_WHITESPACE
2630
)

src/hyperiond/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ if(WIN32)
1616
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
1717

1818
# Search for windeployqt target (qt6 has the target natively) otherwise create it.
19+
get_filename_component(QT_BIN_DIR ${QMAKE_EXECUTABLE} DIRECTORY)
1920
if(NOT TARGET Qt${QT_VERSION_MAJOR}::windeployqt)
20-
get_filename_component(QT_BIN_DIR ${QMAKE_EXECUTABLE} DIRECTORY)
2121
find_program(WINDEPLOYQT_EXECUTABLE NAMES windeployqt HINTS ${QT_BIN_DIR})
2222
if(EXISTS ${WINDEPLOYQT_EXECUTABLE})
2323
add_executable(Qt${QT_VERSION_MAJOR}::windeployqt IMPORTED)
@@ -190,6 +190,12 @@ endif()
190190
if(WIN32 AND NOT DEFINED ENV{GITHUB_ACTIONS})
191191
if(TARGET Qt${QT_VERSION_MAJOR}::windeployqt)
192192
set(WINDEPLOYQT_PARAMS --verbose 0 --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler)
193+
194+
find_program(QT_PATHS "qtpaths.bat" HINTS ENV ${CMAKE_PREFIX_PATH} PATH_SUFFIXES bin)
195+
if(QT_PATHS)
196+
list(APPEND WINDEPLOYQT_PARAMS "--qtpaths \"${QT_PATHS}\"")
197+
endif()
198+
193199
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
194200
COMMAND Qt${QT_VERSION_MAJOR}::windeployqt ${WINDEPLOYQT_PARAMS} "$<TARGET_FILE:${PROJECT_NAME}>"
195201
)

0 commit comments

Comments
 (0)