克马克 是跨平台项目生成器,它允许跨多个IDE和项目系统重用共享C++代码。我们对CMake做了一个修改,以支持我们的Android工具链 Visual Studio . 有了这个改变,您就可以使用现有的针对Android的CMake项目,只需稍加修改,就可以在visualstudio中打开它,并从我们丰富的Android IDE体验中获益。我们为微软的CMake做了贡献 开源github存储库 ,我们计划与Kitware合作,将这些更改集成到公共CMake存储库中。但现在,这是你必须做的。作为先决条件, 请安装Android MDD包 在Visual Studio中。
转到 Microsoft CMake存储库 .
- 单击下载ZIP按钮,下载VCMDDAndroid分支的脱机副本,解压归档文件。
- 从安装CMake 3.4.1 https://cmake.org/download/ ,这是构建CMake本身所必需的,建议使用Win32安装程序。
- 跑 cmake-G“Visual Studio 14” 在解压的归档文件上,应该从CMake的根文件夹运行。这大约需要15分钟。
这将使用VisualStudio2015生成器,并生成VisualStudio项目。目标是在visualstudio中构建CMake。 在CMake运行之后,您应该将visualstudio项目放在out目录中。
- 跑 msbuild cmake.sln ,这将生成CMake。可以从 VS2015开发者命令提示符 .
编译的二进制文件将在binDebug文件夹中。
- 将输出目录添加到路径,或者确保从该目录运行cmake.exe,这样它将运行cmake的修改版本,而不是已安装的版本。
下面的示例说明生成器和CMake的功能 变量。跑 cmake-G“Visual Studio 14 ARM”–DCMAKEu SYSTEMu NAME=VCMDDAndroid 生成VisualStudio项目。您可以删除ARM说明符来编译x86。以下是CMakeLists.txt的内容。您也可以在下面找到这个简短示例的链接。 cmake最低要求(3.4版) 项目(示例) 添加u库(Sample STATIC Sample.cpp) #当VCMDDAndroid成为目标时设置变量的演示 如果(VC MDD ANDROID和VC MDD ANDROID版本匹配“1.0”) 消息(“VCMDDAndroid 1.0”) else() if(CMAKEu GENERATOR匹配“Visual Studio 14”,CMAKEu SYSTEMu NAME匹配“VCMDDAndroid”) 消息(“VCMDDAndroid”) endif() endif() #可选,VCU MDDU ANDROID*属性的演示 设置u属性(目标示例属性VCu MDDu ANDROIDu使用u STL“c++u static”) 设置属性(目标示例属性VC MDD ANDROID API级别“ANDROID-21”) CMake工具链文件不是必需的,示例是自包含的。我们非常关心可用性,并确保用户将最少的信息输入到系统中。唯一需要的信息是系统名称。在中打开并生成生成的项目 Visual Studio .
- 目前我们只支持库、对象、静态或动态。我们不支持打包项目(Java),它被用作引导程序,我们计划很快添加对它的支持。
- 我们只支持x86和ARM架构,我们计划很快增加对x64和ARM64的支持。
接下来,我们将添加x64和ARM64,以及打包项目支持。我们还将 使用Kitware将此工作集成到公共CMake存储库中。我们希望您能在您的CMake项目中找到有用的支持,并期待您对如何改进此支持的反馈和建议。有关这方面的更多新闻,请直接联系我们或在VCBlog和我们的网站上关注我们 Visual C++跨平台页面 . 示例.zip