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
Antwort
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
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.
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. –
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
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