2012-07-21 624 views
7

我在我的Qt项目中有两个子目录docrootconfig。无论何时建立/调试项目,都应将这些目录中的文件复制到构建目录。QTCreator将文件复制到带有INSTALLS的输出目录

由于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中触发/执行此操作。我会始终需要最新版本的文件。编辑

:中$$DESTDIR

从洛根here原文评论最后我用$$OUT_PWD代替: “刚一说明:我用的$$OUT_PWD代替$$DESTDIR,使其工作作为参考$$OUT_PWD是该程序的文件夹。是建立到,并且$$PWD是程序正在构建的文件夹 - 换句话说,它是.pro文件的位置。“

回答

13

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

  1. 切换到项目模式:按Ctrl + 5。
  2. 生成设置选项卡下打造步骤点击添加生成步骤
  3. 选择从菜单制作
  4. 安装进行申辩:文本输入框。

(其中我检查这些是Qt Creator的2.4.1版本。)

+1

您的部分是正确的,谢谢。我仍然只有$$ {DESTDIR}没有被设置的问题(认为它被自动设置为构建目录),尝试%{buildDir},但没有成功。所以必须找出正确的var。 – 2012-07-22 10:29:29

4

我用的是月影窗口7生成和我遇到了比你同样的问题。

此外,设置后,我的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可以使用找到影子构建输出路径。所以,我修复了最终接近您使用的代码。

+1

好的提示,谢谢 – 2012-11-01 13:46:37

相关问题