Чтобы автоматизировать анализ качества кода C++ в нашей компании, меня попросили интегрировать Cppcheck tool с нашим сервером SonarQube (через C++ Community plugin).Cppcheck не расширяет макрос проекта Visual Studio
Для части C++ нашего основного продукта в Visual Studio у нас есть десяток решений с почти сотней проектов в каждом решении.
Мы используем стандарт унаследовали property page macros как $(SolutionDir)
и $(ProjectDir)
, и определить наши собственные пользовательские (определяемые пользователем) макросы, а также (через Property Manager).
В настоящее время я пишу сценарии командной строки командной строки Windows для выполнения статического анализа кода отдельно для каждого решения. Идея состоит в том, чтобы запустить Cppcheck с опцией, например --project="solution_name.sln"
, а затем запустить SonarQube Scanner для синтаксического анализа сгенерированного XML-вывода.
Но есть проблема. Кажется, что Cppcheck не распознает эти макросы $(SolutionDir)
во время включения разрешения пути. (При запуске с --check-config
вариант, он жалуется на отсутствующие файлы включают в себя.)
К сожалению, получается, я даже не могу поставить дополнительные включать пути для решения, так как -I
и --includes-file
опции игнорируются, когда --project
указано.
Как Cppcheck предполагается использовать с проектами Visual Studio в автоматизированной среде? Я говорю о интерфейсе командной строки (который будет использоваться на стороне сервера), а не о интерактивных плагинах (которые используются локально на машинах разработчиков).
Одним из возможных способов было бы создать скрипт Python для предварительной обработки сотен файлов проекта (*.vcxproj
), заменив все эти макросы реальными путями (каждый раз после проверки из SVN и перед выполнением Cppcheck). Или есть ли способ, чтобы Cppcheck распознавал макросы Visual Studio?
Я создал билет на отслеживание ошибок Cppcheck для вас http://trac.cppcheck.net/ticket/7791#ticket – orbitcowboy
@orbitcowboy Благодарим за подачу официального билета! –