Я хотел бы узнать, существуют ли какие-либо инструменты, которые выполняют «статический анализ» параметров сборки, в частности файлов проекта Visual-Studio C ++. (* .vcproj для 2005/2008 - я думаю, что 2010 вводит новый тип файла, унифицированный с MSBuild.)
Вещи, которые мы хотели бы проверять автоматически во всех проектах / модулях, проверенных в SCC:
- Проверьте все определения препроцессора. (например, убедитесь, что в сборке выпуска определено
NDEBUG
.)
- Убедитесь, что настройки оптимизации компилятора одинаковы для всех связанных проектов.
- Убедитесь, что если проект связан с модулем Y, он также связан с модулем Z, но никогда с модулем A.
- Убедитесь, что все связанные проекты используют одинаковые настройки библиотеки времени выполнения (linkage) и т. Д.
- Убедитесь, что проекты генерируют пригодный для использования и правильно названный файл pdb в режиме выпуска и отладки.
- Убедитесь, что все проекты в группе содержат abc.vsprops для дополнительных настроек.
- ...
Таким образом, в основном у нас есть исходный репозиторий с большим количеством проектов, и мы хотели бы убедиться, что все (группы) проектов имеют действительные параметры сборки, а также продолжают иметь действительные параметры сборки.
Есть ли какие-нибудь инструменты для этого, или люди просто крутят свои собственные?
Как сохранить согласованность настроек проекта / MSBuild при наличии большого количества разработчиков?
Редактировать : я также разместил это на форумах VC ++ и, хотя я получил здесь 0 ответов на SO, я получил 0 полезных ответов там.
Я исключу тег makefile и добавлю тег visual-c ++ и посмотрим, будет ли в этом больше смысла:
У нас уже есть большинства вышеуказанных проверок для наших проектов Visual-Studio-2005. Обновление до VC10 или VC11 приближается, и - поскольку Microsoft изменила формат файла проекта - мне придется выбросить инструменты [a], которые у нас есть, и написать новые проверки . Это реальность с MS. Они будут изменять формат файла своего проекта. Это не на что жаловаться, ведь они обеспечивают достойный конвертер, и у них есть свои причины. Однако я бы с удовольствием заплатил бы за продукт, который позволял мне проверять единообразные настройки, не переписывая наши инструменты проверки каждый раз, когда изменяется формат проекта.
[a]: Как и следовало ожидать. Эти инструменты были написаны на месте. Есть 0,01 документов. И поддерживать ужасно.