2012-07-21 109 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

相關問題