cmake-init缺失的CMAKE项目初始化器cmake-init是一个自以为是的CMAKE项目初始化器,生成了准备好的CMAKE项目,这些项目已准备就绪,单独的消费者和开发人员目标,为安装规则提供适当的可重新定位的CMAKE软件包并使用现代CMAKE(3.14+)。
请参阅Wiki,例如CMAKE-INIT的输出以及为CMAKE实施的功能的其他务实示例,例如软件包管理人员,绒毛测试,超级建筑等。






如果您想与我联系以获取与CMake有关的任何与CMAKE有关的事情,那么您可能会在C ++ Slack的#cmake频道中找到我。如果您想知道的是特定于CMAKE-INIT,那么您也可以在此存储库的讨论中提出问题。
h静态/共享库?提示时只需选择s即可。简单正确!FetchContent准备就绪项目确保安装了这些程序:
笔记
如果您想使用Visual Studio,则其中一些工具也可以在Windows上使用,但是必须安装这些插件:
该软件包可从PYPI下载。您可以使用pip安装此软件包:
pip install cmake-initClang-Tidy是一种静态分析工具,可帮助您在编译之前在代码中发现逻辑错误。该脚本为您提供了在dev预设中继承clang-tidy预设的选项,从而为此工具提供了CMAKE集成。
CI始终为您运行Clang Tidy,因此在本地安装和使用它是完全可选的,但建议使用它。
对于Windows用户,如果您想使用clang-tidy,则必须安装忍者并将dev预设中的generator字段设置为Ninja 。这样做的原因是,只有Makefiles和Ninja才能与Clang-Tidy一起使用Cmake。对于其他发电机,此功能是无操作的。
Cppcheck是类似于Clang-Tidy的静态分析工具,但是它们检测到的内容的重叠是最小的,因此使用两者都是有益的。该脚本为您提供了在dev预设中继承cppcheck预设的选项,从而为此工具提供了CMAKE集成。
CI将始终为您运行Cppcheck,因此在本地安装和使用它是完全可选的,但建议使用它。
对于Windows用户,如果您想使用CPPCheck,则必须安装忍者并将dev预设中的generator字段设置为Ninja 。这样做的原因是,只有Makefiles和Ninja才能与Cppcheck一起使用Cmake。对于其他发电机,此功能是无操作的。
doxygen是从注释源代码生成文档的工具。与此结合使用,M.CSS用于展示生成的文档。
生成的项目将在开发人员模式下具有docs目标,该目标可用于将文档构建到<binary-dir>/docs/html目录中。
安装doxygen后,请确保PATH中存在doxygen可执行文件,否则您可能会收到令人困惑的错误消息。
可以使用生成的CI工作流中的docs作业将该文档部署到GitHub页面上。按照工作中剩下的评论启用这一点。
注意:M.CSS与doxygen> = 1.9不使用。您可以安装1.8.20来使用docs目标。请参阅问题#41和#48。
LCOV是处理由GCC的gcov仪器生成的覆盖范围信息的工具。此覆盖范围信息可用于查看程序的哪些部分执行。
如果启用了ENABLE_COVERAGE变量,则生成的项目将在开发人员模式下具有coverage目标。使用单独的目标而不是CTEST内置coverage步骤的原因是因为它缺乏必要的自定义。该目标应在测试后运行,默认情况下,它将在<binary-dir>/coverage.info上生成报告,并在<binary-dir>/coverage_html目录上生成一个HTML报告。
对于Windows用户,您可以使用一个称为OpenCppCoverage的类似工具,为此,生成的cmake目录中有一个示例脚本。该脚本以示例为例,因为Linux VM在GitHub Action中启动并更快地运行,因此它用于覆盖范围。
Clang-Format是LLVM工具套件的一部分,类似于Clang-Tidy。它是代码衬里和代码格式器,可用于执行样式指南。
分别使用format-check和format-fix代码两个目标。
注意:该项目生成了根据Clang-Format 14的格式化的文件。更新或以上的版本可能以不同的方式格式化该项目。
CODESPELL是主要在源代码中查找和修复拼写错误的工具。
分别使用spell-check和拼写修正目标可以在开发人员模式下检查和修复两个目标,以检查和spell-fix拼写错误。
-p标志可用于为项目选择一个软件包管理器。标志的论点可能是:
none :没有包装管理器集成(默认)conan :柯南整合vcpkg :VCPKG集成使用软件包管理器时,生成的项目中使用以下软件包:
确保阅读生成的黑客文档,以查看需要做什么才能获得依赖。
cmake-init [--c] <path>-s , -e或-h标志,以快速创建共享库,可执行文件或仅标题库。 --c开关将将生成的项目的类型设置为C而不是C ++。cmake-init --helpcmake-init是免费软件:您可以按照自己的意愿使用,学习,共享和改进。具体来说,您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分配和/或对其进行修改,该版本是该许可证的第3版,或((可根据您的选项))任何以后的版本。
目录cmake-init/templates的内容使用非执行许可证获得许可。有关更多详细信息,请参见该目录中的许可证。