2012-07-21 7 views
7

Ich habe zwei Unterverzeichnisse docroot und config in meinem Qt-Projekt. Dateien in diesen Verzeichnissen sollten immer in das Build-Verzeichnis kopiert werden, wenn ich das Projekt baue/debugge.QTCreator kopiert Dateien in Ausgabeverzeichnis mit INSTALLS

Ab https://stackoverflow.com/a/3991210/356726 dies möglich ist, durch die Verwendung INSTALLS (QtDoc), die viel einfacher zu sein scheint als Kopierbefehl ausgeführt wird (z here). Ein ähnlicher Ansatz wird beschrieben here.

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

Wenn ich jedoch einen Build in Qt Creator starte, passiert nichts. Diese here sagt, dass ich make install ausführen muss. Kann ich das irgendwie automatisch in Qt Creator auslösen, wenn ich es erstelle? Ich würde immer die neueste Version der Dateien benötigen.

EDIT: Schließlich habe ich verwendet $$OUT_PWD statt $$DESTDIR

Original-Kommentar von Logan here: „Nur eine Anmerkung: benutzen ich $$OUT_PWD statt $$DESTDIR, damit es funktioniert als Referenz $$OUT_PWD ist der Ordner, die das Programm. ist gebaut, und $$PWD ist der Ordner, aus dem das Programm erstellt wird - mit anderen Worten, es ist, wo die .pro-Datei ist. "

Antwort

13

Was Sie brauchen, ist ein benutzerdefinierter Build-Schritt.

  1. Zu wechseln Projekte Modus: Drücken Sie Strg + 5.
  2. Auf Build-Einstellungen Registerkarte unter Erstellungsschritte Klick auf Hinzufügen Build-Schritt.
  3. Wählen Sie Machen Sie aus dem Menü.
  4. Schreiben installieren in Argumente machen: Texteingabefeld.

(Die Version, wo ich überprüfte dieser Qt Creator 2.4.1.)

+1

Ihr Teil ist korrekt, danke. Ich habe immer noch nur ein Problem damit, dass $$ {DESTDIR} nicht gesetzt ist (dachte, dass es automatisch auf das Build-Verzeichnis gesetzt wird), probierte auch% {buildDir} ohne Erfolg. Also muss die rechte var out sein. –

4

Ich war mit Schatten 7 auf Fenster bauen und ich lief in das gleiche Problem, als Sie.

Darüber hinaus wurde nach meiner INSTALLS und den Betrieb einstellen make install ich die folgende Meldung wurde mit:

Nichts für `install‘ durchgeführt werden.

Der Grund ist, dass Sie $$ DESTDIR selbst einstellen müssen.

In meinem Fall wollte ich * .qml Dateien kopieren, das ist, wie ich es erreicht:

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

ich herausgefunden habe, dass $$OUT_PWD Gebrauch sein kann, den Schatten des Aufbaus zu finden AusgabepfadAlso habe ich den Code festgelegt, der dem, was du benutzt hast, nahe kommt.

+1

Gute Tipps, danke –