Dies ist die beste Methode, die ich mir in letzter Zeit ausgedacht habe:
Wählen Sie in den Erstellungsoptionen die Option Stapeldatei erstellen aus.
Wenn Sie einen Build von der IDE aus starten, werden eine Batch-Datei und mehrere Textdateien basierend auf den in der IDE festgelegten Optionen erstellt. Sie müssen diese IDE-generierten Dateien in der Quellcodeverwaltung nachverfolgen:
- *.Schläger
- * .ini
- *.__ich
- * ._ ia
- * .lnp
- * .sct
Dann kann foo.bat über ein Build-Skript gestartet werden.
Auf diese Weise werden zwar zusätzliche Dateien erstellt, die in der Quellcodeverwaltung nachverfolgt werden müssen, wenn Sie zuverlässig aus der generierten Batchdatei erstellen möchten. Sie müssen jedoch nicht mehr auf die Keil-Projektdatei (foo.uvproj) und die IDE angewiesen sein. Ich finde es einfacher, Unterschiede zu den generierten Textdateien (* .__ i), die Compiler-Flags enthalten, zu vergleichen und damit Änderungen nachzuverfolgen, als zur .uvproj-Datei. Darüber hinaus werden in der Batchdatei die verschiedenen Tools armasm, armcc, armlink direkt aufgerufen. Dies gibt Ihnen die direkte Ausgabe jedes dieser Schritte sowie ein anscheinend besseres Potenzial, um ein Projekt in Zukunft bei Bedarf auf eine andere Toolkette zu migrieren.
Mir ist klar, dass sich diese Antwort sehr nach meiner ursprünglichen Frage anhört, aber ich kenne wirklich keinen besseren Weg, um einen skriptbasierten Build mit Keils Werkzeugen auszuführen. Ich fragte nach, was von anderen kommen könnte. Ich bin mit der Antwort von @digikata nicht ganz einverstanden, aber ich bevorzuge es, Compiler-Flags und die Speicherzuordnung in einem einfacheren Format zum Verfolgen zu haben und mehr Tools im Unix-Stil zum Kompilieren zu verwenden, anstatt eine All-in-One-Kompilierung zu starten mit der IDE. Ich denke, dass die All-in-One-Kompilierung aus der IDE auf meiner Workstation gut funktioniert, aber nicht für den Buildserver.
BEARBEITEN : Der Build-Server wird unter Windows Server 2003 ausgeführt. Ich muss gestehen, dass ich es nicht gewohnt bin, die IDE-Befehlszeilenschnittstelle anstelle einer Batchdatei zu verwenden. Dies war einfach zu schwierig zu handhaben.