我的Qt项目中有两个子目录docroot
和config
。每当我构建/调试项目时,都应将这些目录中的文件复制到构建目录中。
从https://stackoverflow.com/a/3991210/356726开始,可以使用INSTALLS
(QtDoc),这似乎比运行复制命令(例如here)容易得多。描述了类似的方法here。
config.path = $${DESTDIR}/config
config.files = config/*
docroot.path = $${DESTDIR}/docroot
docroot.files = docroot/*
INSTALLS += config docroot
然而,当我在Qt Creator中运行构建时,没有任何反应。这个here说我需要运行make install
。每当我构建时,我都能以某种方式从Qt Creator中自动触发/执行此操作。我总是需要最新版本的文件。
编辑:最后我使用$$OUT_PWD
代替$$DESTDIR
洛根here的原始评论:
“只需注意:我使用$$OUT_PWD
代替$$DESTDIR
来使其正常工作。\ n \ n参考$$OUT_PWD
是构建程序的文件夹,$$PWD
是文件夹该程序正在构建 - 换句话说就是.pro文件所在的位置。“
答案 0 :(得分:15)
您需要的是自定义构建步骤。
(我检查过的版本是Qt Creator 2.4.1。)
答案 1 :(得分:6)
我在Window 7上使用了Shadow Build,但我遇到了与你相同的问题。
此外,在设置我的INSTALLS
并运行make install后,我收到以下消息:
“安装”没什么可做的。
原因是您必须自己设置$$ DESTDIR。
在我的情况下,我想复制* .qml文件,这就是我实现它的方式:
# if you are using Shadow build, you need to get the output folder
CONFIG(release, debug|release): DESTDIR = $$OUT_PWD/release
CONFIG(debug, debug|release): DESTDIR = $$OUT_PWD/debug
# if you are using normal build (non-shadow) that would have worked as well.
CONFIG(release, debug|release): DESTDIR = release
CONFIG(debug, debug|release): DESTDIR = debug
QmlFiles.path = $$DESTDIR/Qml
QmlFiles.files += $$files(Qml/*.qml)
INSTALLS += QmlFiles
编辑:
我发现可以使用$$OUT_PWD
来查找Shadow Build Output路径。所以,我修复了最终接近你正在使用的代码。