qregeln für generierten Code

8

Ich erkannte, dass meine frühere Frage ein wenig verwirrt war bezüglich der Regeln und Abhängigkeiten. Die folgende .pro-Datei erzeugt ein Makefile, das korrekt funktioniert, wenn die Quelldateien im Verzeichnis 'generated' zum Zeitpunkt der Ausführung von qmake vorhanden sind.

%Vor%

Aber wenn qmake läuft, erzeugt es nur ein Makefile und PRE_TARGETDEPS & amp; QMAKE_EXTRA_UNIX_TARGETS hilft mir nicht. Wie kann ich qmake dazu bringen, ein Makefile zu generieren, das den Inhalt von generated / zu SOURCES hinzufügt?

    
swarfrat 05.01.2010, 14:51
quelle

3 Antworten

5

Sie müssen dies möglicherweise in zwei Durchgängen tun.

Fügen Sie in Ihrer qmake-Datei die folgende Zeile hinzu:

%Vor%

Fügen Sie am Ende Ihres code_generator-Skripts die Quellen der generated.pri-Datei hinzu (bash für das Beispiel, aber die Idee ist für fast alle Sprachen gleich):

%Vor%

Beim ersten Ausführen der qmake-Datei wird generated / generated.pri vermutlich leer sein. Wenn Sie make ausführen, wird die generated.pri-Datei gefüllt. Beim zweiten Mal wird die make-Datei neu erstellt (als geänderte Quell-PRI-Datei) und anschließend erneut kompiliert. Sie können vielleicht mit anderen Befehlen herumspielen, die die zweite Stufe für Sie erledigen würden.

    
Caleb Huitt - cjhuitt 06.01.2010, 18:32
quelle
4

Ich hatte das gleiche Problem gerade jetzt, aber für eine einfachere Verwendung nur einer einzigen generierten Datei. Dafür habe ich einen einfacheren Weg gefunden, GENERATED_SOURCES anstelle von SOURCES zu verwenden:

%Vor%

Wahrscheinlich könnte man das in eine qmake-Schleife schieben und die richtigen Ziele für mehrere Dateien erzeugen.

    
milianw 08.08.2012 12:25
quelle
0

Ich habe eine Lösung gefunden, von der ich glaube, dass sie robust und allgemein ist, die darauf angewiesen ist, dass qmake ein GNU-Makefile erzeugt.

Angenommen, wir haben alle zusätzlichen SOURCES und HEADERS Zuweisungen in einer Datei namens Makefile.pri , die generiert wird, indem das Skript generate_Makefile.pri.sh ausgeführt wird, das auch die in Makefile.pri genannten Quellen und / oder Header generiert. .

Wir möchten, dass diese Datei automatisch und zuverlässig vom Build-System selbst erzeugt wird, um in die .pro -Datei aufgenommen zu werden, so dass qmake seinen Inhalt berücksichtigen und das Makefile mit den richtigen Abhängigkeiten generieren kann. p>

Das müssen wir dann in unsere Datei .pro einfügen.

%Vor%

Auf diese Weise:

  1. Wenn es kein Makefile.pri gibt, wird es erstellt;
  2. Wenn Makefile.pri erstellt oder aktualisiert wird, wird qmake erneut ausgeführt und berücksichtigt dessen Inhalt, wobei Makefile erneut generiert wird.

Wie gesagt, hängt davon ab, dass qmake ein GNU-Makefile generiert, aber derselbe Ansatz könnte meines Erachtens angepasst werden, um auch mit anderen Ziel-Build-Systemen zu funktionieren.

    
Fabio A. 10.02.2017 16:45
quelle

Tags und Links