C'est la meilleure méthode que j'ai trouvée récemment:
Dans les options de construction, sélectionnez créer un fichier de commandes.
Lorsque vous lancez une génération à partir de l'EDI, un fichier de commandes ainsi que plusieurs fichiers texte sont créés en fonction des options définies dans l'EDI. Vous devez suivre ces fichiers générés par IDE dans le contrôle de code source:
- *.chauve souris
- * .ini
- *.__je
- * ._ ia
- * .lnp
- * .sct
Ensuite, foo.bat peut être lancé à partir d'un script de construction.
Bien que cela crée des fichiers supplémentaires qui doivent être suivis dans le contrôle de code source si vous souhaitez créer de manière fiable à partir du fichier de commandes généré, cela supprime la nécessité de s'appuyer sur le fichier de projet Keil (foo.uvproj) et l'IDE. Je trouve plus facile de comparer les différences, et donc de suivre les modifications, dans les fichiers texte générés (* .__ i) qui contiennent des indicateurs de compilation que dans le fichier .uvproj. De plus, le fichier batch appelle directement les différents outils, armasm, armcc, armlink. Cela vous donne la sortie directe de chacune de ces étapes ainsi qu'un potentiel apparemment meilleur pour la migration d'un projet vers une chaîne d'outils différente à l'avenir si nécessaire.
Je me rends compte que cette réponse ressemble beaucoup à ma question d'origine, mais je ne connais vraiment pas de meilleure façon d'exécuter une construction scriptée avec les outils de Keil. J'ai demandé à voir ce qui pourrait arriver des autres. Je ne suis pas complètement en désaccord avec la réponse de @digikata, mais je préfère avoir des drapeaux de compilation et la carte mémoire dans un format plus facile pour le suivi et utiliser plus d'outils de style Unix pour la compilation plutôt que de lancer une compilation tout-en-un avec l'IDE. Je pense que la compilation tout-en-un de l'IDE fonctionne bien sur mon poste de travail, mais pas pour le serveur de build.
EDIT : Le serveur de build fonctionne sur Windows Server 2003. Je dois avouer que j'ai abandonné l'utilisation de l'interface de ligne de commande IDE plutôt qu'un fichier batch. Cela est devenu trop difficile à gérer.