Este é o melhor método que inventei recentemente:
Nas opções de construção, selecione criar arquivo em lote.
Quando você inicia uma compilação a partir do IDE, um arquivo em lotes e vários arquivos de texto são criados com base nas opções definidas no IDE. Você precisa acompanhar esses arquivos gerados pelo IDE no controle de origem:
- *.bastão
- * .ini
- *.__Eu
- *._I a
- * .lnp
- * .sct
Então foo.bat pode ser iniciado a partir de um script de construção.
Embora isso crie arquivos extras que precisam ser rastreados no controle de origem, se você deseja criar de forma confiável a partir do arquivo em lotes gerado, remove a necessidade de confiar no arquivo de projeto Keil (foo.uvproj) e no IDE. Acho mais fácil comparar diferenças e, assim, rastrear alterações nos arquivos de texto gerados (* .__i) que contêm sinalizadores de compilador do que no arquivo .uvproj. Além disso, o arquivo em lotes chama diretamente as várias ferramentas, armasm, armcc, armlink. Isso fornece a saída direta de cada uma dessas etapas, bem como um potencial aparentemente melhor para migrar um projeto para uma cadeia de ferramentas diferente no futuro, se necessário.
Percebo que essa resposta parece muito com a minha pergunta original, mas realmente não conheço uma maneira melhor de executar uma compilação com script com as ferramentas de Keil. Pedi para ver o que poderia surgir dos outros. Não discordo completamente da resposta de @digikata, mas prefiro ter sinalizadores de compilador e o mapa de memória em um formato mais fácil para rastrear e usar mais ferramentas de estilo unix para compilação, em vez de iniciar uma compilação tudo em um com o IDE. Acho que a compilação do multifuncional do IDE funciona bem na minha estação de trabalho, mas não no servidor de compilação.
EDIT : O servidor de compilação é executado no Windows Server 2003. Devo confessar que desisti de usar a interface da linha de comando IDE em vez de um arquivo em lotes. Isso se tornou muito difícil de gerenciar.