有点小注意

因为某些你懂得的原因,我使用了英译 吉特哈布,你应该能懂,如果不懂,请联系我。

这个英译,看起来,还挺酷。

正文开始

我们很高兴地宣布cmake使用方法详解,Visual Studio 16.10版本以及Visual Studio Code的 CMake 工具 1.7版中提供了CMake Presets预览支持。

Erika介绍了CMake Presets以及为什么要使用它们,这篇文章将重点介绍如何将它们用于跨Visual Studio、VS Code 和吉特哈布Actions的Azure Sphere开发,以在你的开发团队和CI系统中实现一致的构建设置。

Azure Sphere是一个全面的IoT安全解决方案,它超出了本文的范围。 Azure Sphere 项目基于CMake,应用程序开发使用C语言。

由于CMake Presets在 VS 和 VS Code 中仍处于预览阶段,它们还不是由Visual Studio 或 VS Code 创建的 Azure Sphere 项目的一部分。 将来,它们将成为官方 Azure Sphere 示例的一部分。 为了收集有关使用 Azure Sphere 的 CMake 预设的早期反馈,我准备了一个配置了 CMake 预设的 Azure Sphere 项目的 吉特哈布 模板存储库,你可以使用它来关注这篇文章。

来自 吉特哈布 模板的示例

吉特哈布 模板存储库是一种可以从现有存储库创建新项目的方式,而不是启动一个分支。 这对于提供示例以启动一个新项目非常有用,从那里克隆无意将更改发送到上游。 你可以通过选择“使用此模板”直接在 吉特哈布 上创建自己的存储库,然后将其克隆到本地。 或者,你也可以使用 吉特哈布 cli 一步从本地和 吉特哈布 上面的模板创建自己的存储库。

按照上述命令的提示操作,它将你的 吉特哈布 帐户中创建一个名为 azblink 的存储库并创建它的本地副本。

CMake Presets 文件

此项目中的 CMakePresets.json 文件具有用于在 Windows 和 Linux 上面进行调试和发布构建的预设配置。 这两个预设都继承自一个通用的基本配置。

mac cmake 使用_cmake使用方法详解_ubuntu cmake使用

此配置被标记为隐藏,这意味着它不能直接使用,它仅用于为其他预设提供通用设置。 我们可以看到,它被设置为使用 Ninja 作为构建工具,并且这里配置的输出目录是从使用的配置派生的。 我们还可以看到为 Azure Sphere API 设置项目配置的变量集。

还有另外两个隐藏的预设:Windows-Base 和 Linux-Base。 它们继承自上述 Base 配置,并且分别为 Azure Sphere 工具链文件设置 CMake 缓存变量。 该变量使用在每个相应部分中为默认 Azure Sphere SDK 安装位置设置的环境变量。 你还会注意到,指定主机操作系统的供应商部分。 Visual Studio 和 VS Code 使用它来仅在该操作系统上显示该配置选项。 这减少了选择无效配置的可能性。

Visual Studio

如果你在 Visual Studio 打开此项目,它将自动选择 Windows 调试配置,并准备使用隐式默认构建配置进行构建。 launch.vs.json 中 Visual Studio 启动配置作为 .vs 文件夹下的异常检入,因此预配置了调试。 你应该不需要修改此文件。

有关如何使用 Visual Studio 配置和构建 CMake 预设的更多信息,请参阅我们的文档。

VS Code

如果你在 VS Code 打开此项目,系统将提示您选择要使用的配置。 选择调试。 这是因为 settings.json 预先配置为使用 CMake 工具扩展。 构建项目时,系统会提示你进行构建配置,请从所选配置中选择隐式默认值。 要进行调试,你需要连接 Azure Sphere 板。

此项目确实包含 devcontainer 定义cmake使用方法详解,因此可能会提示你在 devcontainer 中打开。 这是受支持的,因此请随意尝试,它将完全按照上述方式工作,包括调试。

由于有一个 devcontainer 定义,这个项目也可以在 吉特哈布 Codespaces 中打开。 导航到你创建的存储库并选择代码按钮上的下拉菜单,然后在代码空间中打开。 在 Web 界面中,你可以构建项目。 如果您从 VS Code 连接到 Codespace,你还可以调试到本地连接的设备。

吉特哈布 Actions

此项目已预先配置为使用吉特哈布操作。你可以在此处详细了解如何将吉特哈布操作与 Azure Sphere 项目一起使用。由于 CMake 预设是新的,与其他示例和当前指南不同的是 CMake 的调用。如果你查看 .devcontainer/Dockerfile,你将看到它是一个多阶段定义,具有三个目标:dev、debug-build 和 release-build。开发阶段只是官方的 Azure Sphere 容器映像。这用于交互式 devcontainer。另外两个阶段继承了 dev 阶段作为基础。每个阶段都将 repo 复制到容器中,然后使用调试或发布预设运行 CMake,然后将适当的入口点设置为生成的缓存以开始构建。

查看 .吉特哈布workflowsci.yml 文件,你将看到官方指南的细微更改,以使用通过使用 CMake Presets 在构建输出中创建的路径。

如果从一开始你就按照模板存储库创建自己的存储库,那么你应该已经成功构建了。转到你在 吉特哈布 上的存储库并导航到“操作”选项卡。你应该会看到初始提交的完整工作流。如果选择,将有一个带有 Azure Sphere 映像包的工件,可以直接部署到设备或作为部署到设备组的一部分。

接下来

Visual Studio 和 Visual Studio Code 中的 CMake Presets 集成仍处于预览阶段。 我们将继续添加到我们的集成中,并在未来版本的 Visual Studio 和 VS Code 的 CMake 工具扩展中解决你的反馈。

总结

有兴趣的猿友可以体验下预览版,看看效果,吃吃瓜。

最后

Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新的开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。

本文来自:《Preview of using CMake Presets for Azure Sphere development》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。

我想:你值得拥有。

cmake使用方法详解_ubuntu cmake使用_mac cmake 使用

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688