Qmake
# Qmake

qmake (ein Nachfolger von tmake) ist ein Generator für Makefiles. Es ist Teil der Qt-Bibliothek der Firma Qt Development Frameworks. qmake erstellt ausgehend von einer Konfigurationsbeschreibung ein Makefile, mit dessen Hilfe man in der Lage ist, eine Sammlung von Quelltexten zu einem Programm oder einer Bibliothek zu übersetzen. Obwohl es speziell für die Arbeit mit Qt entwickelt worden ist, ist auch eine Verwendung für von Qt unabhängiger Software möglich.

## Verwendung

Da Makefiles je nach Compiler und Plattform unterschiedlich aussehen, ist eine plattformübergreifende Entwicklung kaum möglich. Hier greift das Konzept von qmake. Es benötigt eine sehr einfach aufgebaute Projekt-Datei, die die Dateiendung .pro besitzt. Auf allen von qmake unterstützten Plattformen ist nun eine Erzeugung eines Makefiles möglich, das auf dem jeweiligen System verwendet werden kann, wobei es auch mit Qt-spezifischen Erweiterungen umgehen kann.

## Arbeitsweise

Eine Projekt-Datei für qmake umfasst zunächst eine Beschreibung, ob es sich bei dem aktuellen Projekt um ein Programm oder um eine Bibliothek handelt. Des Weiteren können unterschiedliche Konfigurationen angegeben werden. Dadurch ist qmake in der Lage, ein Makefile zu erzeugen, das die benötigten Bibliotheken korrekt einbindet. Ebenso ist der Programmierer in der Lage, Debug- oder Release-Versionen seines Programms zu erzeugen.

Schließlich muss der Programmierer noch alle Quelltext-Dateien angeben, die zu seinem Programm gehören. Dabei ist eine Kategorisierung der Dateien nötig. Diese erfolgt, wie in C++ üblich, in Header- und Quelltext-Dateien. Zusätzlich ist auch die Angabe von Ressource-Dateien möglich, die Bilder, Dialogdefinitionen oder andere Daten enthalten, die zum Programm gehören. Neben dem Buildprozess kann in einer .pro-Datei auch noch die Installation beschrieben werden.

Im Ergebnis findet der Programmierer nach einem erfolgreichen Lauf von qmake ein Makefile vor, mit Hilfe dessen das gewünschte Programm erzeugt werden kann. Dabei werden sowohl sämtliche Abhängigkeiten beachtet, als auch weitere Regeln im Makefile definiert, mit denen die Ausgaben des Compilers wieder gelöscht werden können. Auch kann das Makefile Regeln zur Installation des erzeugten Programmes enthalten.

Es lassen sich auch Projektdateien für Microsoft-IDEs erstellen und unter macOS wird automatisch eine Projektdatei für Apples IDE Xcode anstatt der Makefiles generiert.

### Beispiel

Nach dem Ausführen des Befehles qmake beispiel.pro existiert nun ein komplettes aber plattformspezifisches Makefile, welches sich mit make oder einem seiner Derivate ausführen lässt.

