Hinzufügen einer benutzerdefinierten Befehl mit dem Dateinamen als Ziel
Ich würde gerne etwas tun, wie add_custom_command
mit der Ausgabedatei
Namen als Ziel in das generierte makefile. Gibt es eine elegante Weise
dies zu tun?
Allen Beispielen, die ich gesehen habe (wie die CMake-FAQ re: latex) verwenden add_custom_command
zu sagen, wie erzeugen Sie die gewünschte Ausgabe-Datei, und dann add_custom_target
zu schaffen, ein Ziel. Zum Beispiel.:
add_executable (hello hello.c)
add_custom_command(OUTPUT hello.bin
COMMAND objcopy --output-format=binary hello hello.bin
DEPENDS hello
COMMENT "objcopying hello to hello.bin")
add_custom_target(bin ALL DEPENDS hello.bin)
Jedoch die Ziel-name in der generierten makefile ist dann bin
eher
als hello.bin
. Gibt es eine Möglichkeit, um hello.bin
selbst ein Ziel
in der generierten makefile?
Einige Lösungen, die ich ausprobiert habe, die nicht funktionieren:
- Wechseln zu:
add_custom_target(hello.bin ALL DEPENDS hello.bin)
Ergebnisse in eine zirkuläre Abhängigkeit in der Datei makefile.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man es machen, indem die Generierung von Ihrem Hallo.bin als Nebeneffekt ein Ziel. Stattdessen generieren Hallo.bin von objcopy, Sie generieren Hallo.tmp. Dann als Nebeneffekt werden Sie auch kopieren Hallo.tmp-Hallo.bin. Schließlich erstellen Sie die falschen Ziel Hallo.bin das hängt davon ab, Ihre Hallo.tmp. In code:
Das problem ist, das Hallo.bin noch nicht gereinigt, wenn Sie sauber läuft. Zu bekommen, dass Sie arbeiten, hinzufügen: