Wie erstelle ich Build-Regeln in cmake, um faule C ++ .lzz-Dateien, die .h- und .cpp-Dateien erzeugen, vorzuverarbeiten?

8

Ich möchte nur Lazy C ++ .lzz-Dateien schreiben und dann lzz vor einem Build ausführen, um .cpp- und .h-Dateien zu erzeugen, die in die endgültige Anwendung integriert werden, ähnlich wie moc mit Qt.

Gibt es eine Möglichkeit, dies zu tun?

    
jjacksonRIAB 21.04.2010, 23:00
quelle

3 Antworten

8

Hier ist ein Beispiel, wie man das macht ... Zuerst müssen Sie das Programm lzz finden, dafür verwenden Sie den Befehl find_program :

%Vor%

Dies setzt LZZ_COMMAND auf den Pfad des Compilers. Verwenden Sie dann einen benutzerdefinierten CMake-Befehl, um die LZZ-Datei in ihre C ++ - Header- / Implementierungsdateien zu kompilieren:

%Vor%

Das generiert die Dateien im aktuellen Build-Verzeichnis, falls Sie Out-of-Source-Builds ausführen. Sie müssen auch angeben, dass die Ausgaben generierte Dateien sind:

%Vor%

Setzen Sie das alles zusammen und Sie erhalten eine CMakeLists.txt-Datei in etwa so:

%Vor%

Sie würden wahrscheinlich auch einen Pfad und andere Optionen zu lzz hinzufügen. Wenn Sie all das Lazy C ++ - Zeug in eine Moduldatei gelegt und das aus der CMakeLists.txt aufgenommen haben, wäre es etwas sauberer. Aber das ist die Grundidee.

    
richq 22.04.2010, 11:59
quelle
4

Ich wollte nur meine CMakeLists.txt teilen, die auf dem Rich-Script aufbaut. Die Dateien * .cpp und * .hpp hängen nun korrekt von den * .lzz-Dateien ab. Die * .lzz-Dateien werden dem Projekt hinzugefügt (das die obige Frage von absense beantwortet), aber mit dem Befehl source_group von den generierten Dateien getrennt gehalten.

Der einzige verbleibende Dealbreaker für mich ist die Unfähigkeit, die aktuelle Datei für * .lzz-Dateien zu kompilieren.

%Vor%     
Andreas Haferburg 12.03.2012 14:54
quelle
-1

Für make:

%Vor%

Geben Sie sourcecode.h, sourcecode.cpp und lazy-cpp mit den korrekten Werten ein. Ich kenne sie nicht.

    
Joshua 21.04.2010 23:08
quelle

Tags und Links