Ich benötige die Syntax eines Makros CMAKE , das .cc- und .h-Dateien von einem Tool wie lex / yacc erzeugt.
Könnte jemand mir bitte die Syntax für das folgende erfundene Beispiel zeigen:
Ich habe eine Datei y.cc, die von x.cc und x.h abhängt, die beiden genannten Dateien werden vom Tool z_tool aus der Datei x.z generiert. Was wäre die Syntax dafür?
Nehmen Sie für dieses Beispiel an, dass y.cc in eine statische Bibliothek umgewandelt wird, und da ich zu CMAKE ziemlich neu bin, wäre die vollständige CMakellist.txt für dieses erfundene Beispiel sehr hilfreich. Ich suche nach einer portablen Lösung als Die Tools, die ich verwende, sind sowohl für Windows als auch für UNIX-Varianten verfügbar.
Anstatt Ihnen die Antwort auf ein künstliches Beispiel zu geben, wird hier die Art und Weise beschrieben, wie Sie mit flex und bison
%Vor%Die CMake-Find-Pakete für bison / flex sind in der Standardinstallation enthalten, also ist dies plattformübergreifend.
Um eine Ausgabe zu erstellen, die später als Eingabe verwendet wird, können Sie add_custom_command Funktion. Wenn Sie eine Ausgabe des benutzerdefinierten Befehls als Eingabe für eine Bibliothek oder eine ausführbare Datei verwenden, kann CMake Ihren benutzerdefinierten Befehl vor dem Kompilieren der Quellen für das Bibliotheks- / ausführbare Ziel ausführen.
Die folgende Zeile hat Tippfehler
%Vor%BIANRY sollte als BINARY buchstabiert werden.
Hinweis: CMake Documentation hat auch diesen Tippfehler. (in 2.8.0 ist dies in der Dokumentation zu 2.8.10 behoben.)
/ * Damit es mit Lion auf meinem Mac funktioniert. Ich änderte die Dateinamen in y.tab.c und lex.yy.c, die die Ausgabedateien sind, wenn Sie lex lex.l und yacc -D yacc.y über die Befehlszeile ausführen. Siehe unten. * /
%Vor%Tags und Links macros compilation build-process cmake portability