QTCreator使用INSTALLS将文件复制到输出目录

时间:2012-07-21 14:50:38

标签: qt build qt-creator qmake

我的Qt项目中有两个子目录docrootconfig。每当我构建/调试项目时,都应将这些目录中的文件复制到构建目录中。

https://stackoverflow.com/a/3991210/356726开始,可以使用INSTALLSQtDoc),这似乎比运行复制命令(例如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文件所在的位置。“

2 个答案:

答案 0 :(得分:15)

您需要的是自定义构建步骤。

  1. 切换到项目模式:按Ctrl + 5。
  2. 构建步骤下的构建设置标签上,点击添加构建步骤
  3. 从菜单中选择制作
  4. 安装写入制作参数:文字输入框。
  5. (我检查过的版本是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路径。所以,我修复了最终接近你正在使用的代码。