制作 | UWP :: 使用 Cmake 构建通用 Windows 应用程序

Posted

技术标签:

【中文标题】制作 | UWP :: 使用 Cmake 构建通用 Windows 应用程序【英文标题】:Cmake | UWP :: Using Cmake to build Universal Windows App 【发布时间】:2017-04-09 17:56:15 【问题描述】:

如何使用 CMake 构建通用 Windows 应用程序。我已经搜索了很多,我发现了以下内容:

CMake -G "Visual Studio 14 2015" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10

这就是我应该调用 CMake 的方式。

(How can i use CMake to generate Windows 10 universal project)

对应的 CMakeLists.txt 文件应该是什么样子。我知道可执行文件和库(如 add_executable 等)的命令。但我不知道用于构建 UWP 应用程序的命令。谁能提供一个示例 CMakeLists.txt 文件以及一些示例代码?

还有如何将 CMake 用于 WinRT 组件?

【问题讨论】:

【参考方案1】:

CMake 是一个跨平台的构建工具,微软从官方的cmake 存储库中创建了一个 fork branch,以引入对 UWP 和 WinRT 的支持。所以官方的cmake从3.4.0版本开始就支持UWP了。

CMakeLists.txt文件不同于一般的cmake文件,需要指定cmake版本、源文件等...

在定位 UWP 项目时,您需要按照您指出的那样指定构建命令,

CMake -G "Visual Studio 14 2015" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10

您也可以使用 CMake GUI 工具,只需声明 MAKE_SYSTEM_NAME 和 CMAKE_SYSTEM_VERSION 宏。

这里值得一提的是有一个开源的fips 项目,它是一个围绕cmake 的包装模块。跟着教程here,你可以看到生成UWP项目是多么容易,

fips build uwp-vstudio-debug

【讨论】:

来自 fips github 于 2019 年 1 月 20 日:“NaCl 和 UWP 支持已被删除(两者都没有维护很长时间)” -DCMAKE_SYSTEM_VERSION='10.0' 对于某些情况

以上是关于制作 | UWP :: 使用 Cmake 构建通用 Windows 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UWP(通用 Windows 编程)应用程序中进行简单的用户登录

详解 UWP (通用 Windows 平台) 中的两种 HttpClient API

如何构建 CMake 项目

在 CMake 中使用 setup.py 构建 python 包

使用 cmake 和 Qt4 制作期间的 RCC 解析错误

CMake 和绝对标题路径