Контекст:
Я пытаюсь автоматизировать некоторые из более рутинных задач разработки встраиваемых систем с помощью Keil. Конечный результат, к которому я стремлюсь, заключается в том, что щелчок по сборке в проекте Keil запустит этап предварительной сборки, который запускает весь код через Uncrustify (улучшитель исходного кода), чтобы убедиться, что он соответствует руководству по стилю компании, и сообщение -build шаг, который затем запускает код через pc-lint (статический анализатор кода), чтобы выделить любой потенциально небезопасный код, который он может найти. Я написал утилиту для ПК, которая ищет в файле .uvproj макросы #define, пути включения и пути к файлам, которые необходимы для обоих инструментов, а затем изменяет пользовательские команды до и после сборки для вызова мои пакетные файлы, которые будут управлять обоими шагами. Часть с расщеплением работает нормально, а часть с ворсом выдает разумные сообщения, но отношение сигнал/шум не так уж велико.
Моя проблема:
Lint продолжает генерировать сообщения, которые, похоже, относятся к макросам, о которых знает компилятор Keil, но о котором Lint не знает. Я пытаюсь найти способ восполнить этот пробел. Я нашел таблицу предопределенных макросов, задокументированную на веб-сайте Keil. , что кажется хорошим началом, но вместо того, чтобы вручную копировать их в статический файл .lnt, я хотел бы найти способ получить актуальные значения во время сборки проекта. Таким образом, например, макрос «__ARMCC_VERSION» будет обновляться каждый раз, когда разработчик обновляет свой компилятор Keil, а не застревает на каком-то моменте времени, когда я копирую его вручную.
Я был бы рад, если бы кто-то мог ответить на мой вопрос напрямую, но я был бы в равной степени рад, если бы у кого-то было жизнеспособное предложение для более простого альтернативного подхода, который я мог бы попробовать вместо этого. Большое спасибо!