2012-07-21 27 views
7

Tengo dos subdirectorios docroot y config en mi proyecto Qt. Los archivos en estos directorios se copiarán en el directorio de compilación siempre que construya/depure el proyecto.QTCreator copiar archivos al directorio de salida con INSTALLS

A partir de https://stackoverflow.com/a/3991210/356726 esto es posible mediante el uso de INSTALLS (QtDoc), que parece ser mucho más fácil de ejecutar el comando de copia (por ejemplo here). Se describe un enfoque similar here.

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

Sin embargo, cuando ejecuto una compilación en Qt Creator no ocurre nada. Este here dice que necesito ejecutar make install. ¿Puedo de alguna manera activar/hacer esto desde Qt Creator automáticamente cada vez que construyo? Necesitaría siempre la última versión de los archivos.

EDIT: Con el tiempo he utilizado $$OUT_PWD en lugar de $$DESTDIR

comentario original de Logan here: "Sólo una nota: He utilizado $$OUT_PWD en lugar de $$DESTDIR para que funcione Como referencia $$OUT_PWD es la carpeta que el programa. está diseñado para, y $$PWD es la carpeta desde la que se está creando el programa; en otras palabras, es donde está el archivo .pro ".

Respuesta

13

Lo que necesita es un paso de compilación personalizado.

  1. Cambiar a Proyectos Modo: presione Ctrl + 5.
  2. En configuración de generación lengüeta debajo etapas de la generación clic en Agregar Construir Paso.
  3. Elija Haga en el menú.
  4. Escribir instalar en Hacer argumentos: cuadro de entrada de texto.

(La versión en la que he comprobado estos es Qt Creator 2.4.1.)

+1

Su parte es correcta, gracias. Todavía tengo un problema con $ {DESTDIR} que no se establece (creo que se establece automáticamente en el directorio de compilación), intenté% {buildDir} también sin éxito. Así que debemos calcular la varilla correcta. –

4

que estaba usando la sombra Basarse en Windows 7 y me encontré con el mismo problema que tú.

Por otra parte, después de poner en marcha mi INSTALLS y realizar una instalación que estaba teniendo el siguiente mensaje:

hay nada que hacer para instalar `'.

El motivo es que tiene que establecer $$ DESTDIR usted mismo.

En mi caso yo quería copiar archivos * .qml, así es como lo logré:

# 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:

que descubra que $$OUT_PWD se puede utilizar para encontrar la sombra de construcción Ruta de salida.Entonces, arreglé el código que finalmente se acercaba a lo que estabas usando.

+1

Buenos consejos, gracias –

Cuestiones relacionadas