Este es el mejor método que se me ocurrió recientemente:
En las opciones de compilación, seleccione crear archivo por lotes.
Cuando inicia una compilación desde el IDE, se crea un archivo por lotes junto con varios archivos de texto según las opciones establecidas en el IDE. Necesita rastrear estos archivos IDE generados en el control de origen:
- *.murciélago
- * .ini
- *.__yo
- *._I a
- * .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 generar de manera confiable a partir del archivo por lotes generado, elimina la necesidad de confiar en el archivo del proyecto Keil (foo.uvproj) y el IDE. Me resulta más fácil comparar diferencias y, por lo tanto, realizar un seguimiento de los cambios en los archivos de texto generados (* .__ i) que contienen indicadores de compilación que en el archivo .uvproj. Además, el archivo por lotes llama a las diversas herramientas, armasm, armcc, armlink, directamente. Esto le brinda la salida directa 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 programada con las herramientas de Keil. Pedí ver qué podría surgir de los demás. No estoy completamente en desacuerdo con la respuesta de @digikata, pero prefiero tener los indicadores del compilador y el mapa de memoria en un formato más fácil para el seguimiento y usar más herramientas de estilo Unix para la compilación 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.
EDITAR : 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.