我正在尝试为我的 CMake 驱动项目启用代码分析。我生成 Visual Studio 2013 解决方案,并希望使用特定规则集启用代码分析。我知道我可以通过在我的 CMake 文件中指定 add_definitions("/analyze") 来启用代码分析,但是我如何控制使用哪个规则集?
据我所知,控制所用规则集的唯一方法是通过项目文件中的 xml 元素 CodeAnalysisRuleSet,但我无法从 CMake 访问它。
最佳答案
如果您尝试通过命令行构建解决此问题——通过 cmake --build
或直接调用 msbuild
——而不是在使用生成的使用 Visual Studio 解决方案,您可以在调用构建时设置相关属性。
使用 cmake 驱动构建:
PS c:\build-dir> cmake --build . -- '/p:RunCodeAnalysis=true' `
'/p:CodeAnalysisRuleSet=NativeRecommendedRules.ruleset'
使用 MSBuild 驱动构建:
PS c:\build-dir> msbuild ALL_BUILD.vcxproj '/p:RunCodeAnalysis=true' `
'/p:CodeAnalysisRuleSet=NativeRecommendedRules'
如果您在自定义目录中有自定义规则集,您还需要设置属性 CodeAnalysisRuleSetDirectories
:
PS c:\build-dir> cmake --build . -- '/p:RunCodeAnalysis=true' `
'/p:CodeAnalysisRuleSet=custom.ruleset' `
'/p:CodeAnalysisRuleSetDirectories=c:\src\ruletsets'
(使用 CMake 3.8.0、MSBuild 15.3.409.57025 和 Visual C++ 2017 19.11.25506 进行测试。)
关于c++ - 在命令行或从 CMake 指定用于 Visual Studio 代码分析的规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22410651/