Skip to content

Commit 95607ab

Browse files
committed
Windows copy DLLs post-build
1 parent 23c06af commit 95607ab

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,39 @@ endif()
186186

187187
qt_finalize_target(${PROJECT_NAME})
188188

189+
# =============================================================================
190+
# Windows: Copy DLLs to build directory for debugging
191+
# =============================================================================
192+
if(WIN32)
193+
get_target_property(_qmake_executable Qt6::qmake IMPORTED_LOCATION)
194+
execute_process(
195+
COMMAND ${_qmake_executable} -query QT_INSTALL_PLUGINS
196+
OUTPUT_VARIABLE QT_PLUGINS_DIR
197+
OUTPUT_STRIP_TRAILING_WHITESPACE
198+
)
199+
200+
# Copy runtime DLLs
201+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
202+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
203+
$<TARGET_RUNTIME_DLLS:${PROJECT_NAME}>
204+
$<TARGET_FILE_DIR:${PROJECT_NAME}>
205+
COMMAND_EXPAND_LISTS
206+
COMMENT "Copying runtime DLLs for ${PROJECT_NAME}"
207+
)
208+
209+
# Copy Qt plugins
210+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
211+
COMMAND ${CMAKE_COMMAND} -E copy_directory
212+
"${QT_PLUGINS_DIR}/platforms"
213+
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/platforms"
214+
)
215+
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
216+
COMMAND ${CMAKE_COMMAND} -E copy_directory
217+
"${QT_PLUGINS_DIR}/styles"
218+
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/styles"
219+
)
220+
endif()
221+
189222
# =============================================================================
190223
# Installation
191224
# =============================================================================

0 commit comments

Comments
 (0)