2012-07-21 1 views
7

Ho due sottodirectory docroot e config nel mio progetto Qt. I file in queste directory devono essere copiati nella directory di costruzione ogni volta che creo/eseguo il debug del progetto.QTCreator copia i file nella directory di output con INSTALLS

Al https://stackoverflow.com/a/3991210/356726 questo è possibile utilizzando INSTALLS (QtDoc), che sembra essere molto più facile di comando di copia (es here) in esecuzione. Un approccio simile è descritto here.

config.path = $${DESTDIR}/config 
config.files = config/* 
docroot.path = $${DESTDIR}/docroot 
docroot.files = docroot/* 
INSTALLS  += config docroot 

Tuttavia, quando eseguo una build in Qt Creator non accade nulla. Questo here dice che ho bisogno di eseguire make install. Posso in qualche modo attivare/eseguire questo da Qt Creator automaticamente ogni volta che costruisco. Avrei sempre bisogno dell'ultima versione dei file.

EDIT: Alla fine ho usato $$OUT_PWD invece di $$DESTDIR

commento originale da Logan here: "Solo una nota: ho usato $$OUT_PWD invece di $$DESTDIR per farlo funzionare Per riferimento $$OUT_PWD è la cartella che il programma. è costruito per, e $$PWD è la cartella in cui viene costruito il programma - in altre parole è dove si trova il file .pro. "

risposta

13

Quello che ti serve è un passaggio personalizzato.

  1. Passare al Progetti modalità: premere Ctrl + 5.
  2. Su impostazioni di generazione scheda sotto istruzioni di generazione clic su Add costruire passo dopo.
  3. Scegliere Effettuare dal menu.
  4. Scrivi installa in Crea argomenti: casella di immissione testo.

(La versione in cui ho controllato questi è Qt Creator 2.4.1.)

+1

La tua parte è corretta, grazie. Ho ancora solo un problema con $$ {DESTDIR} non impostato (pensavo che fosse impostato automaticamente sulla cartella build), provato anche% {buildDir} senza successo. Quindi devo capire il var giusto. –

4

stavo usando Ombra Costruire su Windows 7 e ho incontrato lo stesso problema di te.

Inoltre, dopo aver impostato il mio INSTALLS e in esecuzione make install stavo avendo il seguente messaggio:

Niente da fare per `install'.

Il motivo è che devi impostare $$ DESTDIR da solo.

Nel mio caso ho voluto copiare i file * .qml, è così che ho raggiunto è:

# 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 

EDIT:

immagino che $$OUT_PWD può essere utilizzato per trovare l'Ombra Costruire Percorso di uscita.Quindi, ho risolto il codice che alla fine si avvicinava a quello che stavi usando.

+1

Buoni suggerimenti, grazie –

Problemi correlati