Это лучший метод, который я придумал недавно:
В опциях сборки выберите создать пакетный файл.
Когда вы запускаете сборку из IDE, пакетный файл вместе с несколькими текстовыми файлами создаются на основе параметров, установленных в IDE. Вам необходимо отслеживать эти сгенерированные IDE файлы в системе контроля версий:
- *.летучая мышь
- * .ini
- *.__я
- * ._ И.А.
- * .lnp
- * .sct
Затем foo.bat можно запустить из скрипта сборки.
Хотя это создает дополнительные файлы, которые необходимо отслеживать в системе контроля версий, если вы хотите надежно строить из сгенерированного пакетного файла, это устраняет необходимость полагаться на файл проекта Keil (foo.uvproj) и IDE. Мне легче сравнивать различия и, следовательно, отслеживать изменения в сгенерированных текстовых файлах (* .__ i), которые содержат флаги компилятора, чем в файле .uvproj. Кроме того, пакетный файл вызывает различные инструменты, armasm, armcc, armlink, напрямую. Это дает вам прямой вывод каждого из этих шагов, а также, по-видимому, лучший потенциал для переноса проекта в другую цепочку инструментов в будущем, если это необходимо.
Я понимаю, что этот ответ звучит очень похоже на мой первоначальный вопрос, но я действительно не знаю лучшего способа запустить сборку по сценарию с помощью инструментов Keil. Я попросил посмотреть, что может подойти от других. Я не совсем не согласен с ответом @digikata, но я предпочитаю иметь флаги компилятора и карту памяти в более простом формате для отслеживания и использовать больше инструментов в стиле Unix для компиляции, а не запускать компиляцию «все в одном» с IDE. Я думаю, что компиляция "все в одном" из IDE хорошо работает на моей рабочей станции, но не для сервера сборки.
РЕДАКТИРОВАТЬ : сервер сборки работает на Windows Server 2003. Я должен признаться, что я уступил в использовании интерфейса командной строки IDE, а не командный файл. Просто стало слишком сложно управлять.