如何将qwindows.dll复制到平台目标子文件夹中?

时间:2018-09-12 19:34:14

标签: qt cmake

我正在尝试从qt库文件夹复制qwindows.dll到目标文件夹。目前,我正在使用以下代码:

add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::QWindowsIntegrationPlugin> $<TARGET_FILE_DIR:${PROJECT_NAME}>)

可以,但是它将文件复制到目标目录中。我需要将文件复制到platforms子文件夹中,但我不知道该怎么办。我尝试过

add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::QWindowsIntegrationPlugin> $<TARGET_FILE_DIR:${PROJECT_NAME}>/platforms/qwindows.dll)

但是问题是.dll在调试模式下(qwindowsd.dll)有另一个名称,因此我需要两次插入命令。

是否可以使用Qt5::QWindowsIntegrationPlugin来检索文件名并将其用作第二个命令中的目标文件?

1 个答案:

答案 0 :(得分:1)

add_custom_command(
    TARGET demo POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:demo>/platforms/
    COMMAND ${CMAKE_COMMAND} -E copy_if_different
        $<TARGET_FILE:Qt5::QWindowsIntegrationPlugin>
        $<TARGET_FILE_DIR:demo>/platforms/
)