Betten Sie die Git-Revision während der Remote-Erstellung mit NetBeans in die ausführbare Datei ein

Ich möchte die Git-Revision (SHA1) zum Zeitpunkt der Erstellung in meine ausführbaren Dateien einbetten. Ich kann es lokal so machen:

 git log -1 --format='%h' >version
 objcopy --input binary --output elf64-x86-64 version version.o
 # link version.o into the executable

Das Problem ist, ich benutzeNetBeans (unter Windows) zum Remote-Erstellen (unter Linux). Es ist ein kleines Paradox: Der Befehl git muss anscheinend auf dem lokalen Computer ausgeführt werden (auf dem sich die Quelle befindet), der Befehl objcopy muss jedoch auf dem Remoteserver ausgeführt werden (auf dem der Build ausgeführt wird). Dies ist ein Problem, da ich in NetBeans zwar das Makefile des Projekts bearbeiten kann, um einen Pre-Build-Schritt einzufügen, ich jedoch nicht herausfinden kann, wie oder wo der Befehl git abgelegt werden soll, damit er vor den Schritten des Remote-Builds auf dem lokalen Computer ausgeführt wird.

Ich habe versucht, ein separates NetBeans-Projekt zu erstellen, um den Befehl git auf localhost auszuführen, und dachte, dass ich dann das "echte" Projekt davon abhängig machen würde, aber NetBeans scheint mir nicht zu erlauben, ein Projekt zu erstellen, das "nichts tut" ( dh es hat keine Quelldateien und erzeugt weder eine Bibliothek noch eine ausführbare Datei - es würde nur die Versionstextdatei erzeugen).

Ich verwende NetBeans 7.3 für C ++ mit der Option "Automatisches Kopieren" für Remote-Builds. Eine mögliche Lösung könnte darin bestehen, den NFS / Samba-Modus mit dem auf dem Server gespeicherten Git-Repository zu verwenden. Dies wäre jedoch ziemlich störend, da das Projekt bereits seit langer Zeit mehrere Entwickler hat, die das automatische Kopieren verwenden. Es wäre also großartig, eine Lösung zu haben, um einige Dateien lokal in NetBeans zu generieren, bevor Sie mit der Remote-Erstellung beginnen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage