Este es el mejor método que he encontrado recientemente:
En las opciones de compilación, seleccione crear archivo por lotes.
Cuando inicia una compilación desde el IDE, se crean un archivo por lotes junto con varios archivos de texto según las opciones establecidas en el IDE. Debe realizar un seguimiento de estos archivos generados por IDE en el control de origen:
- * .bat
- * .ini
- * .__ i
- * ._ ia
- * .lnp
- * .sct
Entonces foo.bat se puede iniciar desde un script de compilación.
Si bien esto crea archivos adicionales que deben rastrearse en el control de origen si desea compilar de manera confiable a partir del archivo por lotes generado, elimina la necesidad de confiar en el archivo de proyecto Keil (foo.uvproj) y el IDE. Me resulta más fácil comparar las diferencias y, por lo tanto, hacer un seguimiento de los cambios a los archivos de texto generados (* .__ i) que contienen marcas de compilación que al archivo .uvproj. Además, el archivo por lotes llama a las diversas herramientas, armasm, armcc, armlink, directamente. Esto le brinda el resultado directo de cada uno de esos pasos, así como un potencial aparentemente mejor para migrar un proyecto a una cadena de herramientas diferente en el futuro, si es necesario.
Me doy cuenta de que esta respuesta se parece mucho a mi pregunta original, pero realmente no conozco una mejor manera de ejecutar una compilación con scripts con las herramientas de Keil. Pedí ver lo que podría surgir de los demás. No estoy totalmente en desacuerdo con la respuesta de @digikata, pero prefiero tener indicadores de compilación y el mapa de memoria en un formato más fácil para el seguimiento y usar más herramientas de estilo Unix para compilar en lugar de lanzar una compilación todo en uno. con el IDE. Creo que la compilación todo en uno del IDE funciona bien en mi estación de trabajo, pero no para el servidor de compilación.
EDIT : el servidor de compilación se ejecuta en Windows Server 2003. Debo confesar que he cedido a usar la interfaz de línea de comandos IDE en lugar de un archivo por lotes. Esto se volvió demasiado difícil de manejar.