2010-09-27 5 views
17

Für mein Qt-Projekt verwende ich eine .pro-Datei, die eine separate .pri-Datei für die verschiedenen Header-, Quell-, Formular- und Ressourcendateien enthält. Jedes Mal, wenn ich eine neue Datei hinzufüge, muss ich sie manuell zur .pri-Datei hinzufügen. Dies ist mühsam und fehleranfällig. Gibt es eine Möglichkeit, alle Dateien aus einem Verzeichnis "magisch" hinzuzufügen, entweder direkt in der .pri-Datei oder indem qmake angewiesen wird, vorher ein separates Skript auszuführen?QMake: Automatisches Kompilieren aller Dateien in einem Verzeichnis

+1

Nette Frage! Aber ... mögliche Fehler durch das Hinzufügen beliebiger Dateien (aus einem Verzeichnis) können mehr sein als die, wenn ein Dateiname falsch eingegeben wird. Das Hinzufügen eines Dateinamens zur .pri-Datei dauert sehr viel weniger Zeit als das Hinzufügen einer Quelldatei, so dass diese Zeit vernachlässigt werden sollte. – mmonem

Antwort

9

Wenn Sie qmake -project aus dem Verzeichnis ausführen, wird eine Projektdatei erstellt, die alle .cpp- und .h-Dateien in diesem Verzeichnis enthält. Sie können einen Vorkompilierungsschritt hinzufügen, der qmake -project aufruft, und dann die generierte Datei an ein Skript übergeben, das die ersten Zeilen entfernt. Hier ist ein kurzer Einzeiler, die die Arbeit tun konnten:

qmake -project -o MyFiles.pro && sed '1,/^# Input/d' MyFiles.pro > MyFiles.pri && rm MyFiles.pro 
15

Sie verwenden können:

SOURCES += *.cpp 
HEADERS += *.h 

in Ihrer Pro-Datei. Natürlich müssen Sie immer noch daran denken, qmake nach dem Erstellen neuer Dateien erneut auszuführen.

+8

Wie können Sie das rekursiv alle Quelldateien in einem bestimmten Verzeichnis und allen Unterverzeichnissen hinzufügen? Dies fügt nur die Dateien im Stammpfad hinzu. –

+0

Es scheint auch nicht für irgendeinen Pfad außer $$ PWD, z.B. '../ my_blah/*. h' funktioniert nicht, es heißt" Failure to find ... " – DBedrenko