Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[原文发表地址] Support for Android CMake projects in Visual Studio
[原文发表时间] 2015/12/16 3:16 AM
CMake 是一个跨平台工程生成工具,它能让共享的C++跨平台代码在其他多种IDE环境和工程中重复利用。
在Visual Studio中,我们做了一些改变,使CMAKE能支持Android工具链。有了这一改变,你只需做最小的改动,就可以将现有的CMAKE工程变成Android目标平台的工程,你可以在Visual Studio打开你的工程,充分感受到我们丰富的Android集成开发环境的好处。
我们已经在努力做微软CMake 开源github资源库,也打算和Kitware合作将这些改变集成在公开的CMake资源库。
但是当下,下面是你们需要做的一些步骤。
前提条件,请在Visual Studio上安装Android MDD包
获取CMake
在Microsoft CMake 资源库的VCMDDSndroid下面。
- 请点击“Download ZIP”按钮 ,下载离线备份的VCMDDAndroid,并解压。
- 从https://cmake.org/download/安装CMake3.4.1,这是编译CMake做必须的,推荐Win32 安装器。
- 在解压缩的文件目录下,运行 cmake –G “Visual Studio 14” ,这个会从根目录下启动CMake ,大概会花15分钟左右。
- 这样将会使用Visual Studio 2015生成工具,和生成Visual Studio工程。目的是在Visual Studio中编译CMake。
在CMake运行后,在out文件中应该有Visual Studio 工程。
- 运行 msbuild cmake.sln , 这将会编译CMake, 你可以在VS2015 开发者命令提示符运行msbuild。 这样编译的二进制文件将会在bin\Debug文件夹下。
- 或者将输出文件夹路径添加到 PATH ,或者确保从这个目录下运行cmake.exe ,这样运行它会启动修改CMake版本, 而不是之前安装的那个。
编译你的CMake工程
下面的例子会解释生成器的功能以及CMake的变量。
运行cmake -G “Visual Studio 14 ARM” –DCMAKE_SYSTEM_NAME=VCMDDAndroid 去生成Visual Studio工程。
在生成x86的解决方案,你可以删除修饰符ARM。
下面是CMakeLists.txt的内容,你在下面可以找到这个简单例子的链接。
cmake_minimum_required(VERSION 3.4)
project (Sample)
add_library(Sample STATIC sample.cpp)
# demo of the variables being set when VCMDDAndroid is targeted
if(VC_MDD_ANDROID AND VC_MDD_ANDROID_VERSION MATCHES "1.0")
message("VCMDDAndroid 1.0")
else()
if(CMAKE_GENERATOR MATCHES "Visual Studio 14" AND CMAKE_SYSTEM_NAME MATCHES "VCMDDAndroid")
message("VCMDDAndroid")
endif()
endif()
# optional, demo of the VC_MDD_ANDROID* properties
set_property(TARGET Sample PROPERTY VC_MDD_ANDROID_USE_OF_STL "c++_static")
set_property(TARGET Sample PROPERTY VC_MDD_ANDROID_API_LEVEL "android-21")
CMake工具链文件是不需要的,这个例子中自带了。 我们非常关心它的易用性,并确保用户只需写入最少的信息。唯一所需的信息只有系统的名字。
在Visual Studio中打开和编译这个已生成的文件。
已知的问题和局限性
1. 现阶段,我们只支持库,对象,静态链接库和动态链接库。我们不支持用于bootstrapper的封装工程(如Java),我们正计划尽快支持它。
2. 我们目前支持x86 和 ARM 架构,我们正计划不久的将来支持x64 和 AMD64。
下一阶段?
未来,我们会添加对x64和AMD64架构,以及packaging project support.我们很快回合Kitware合作,将这些集成到公开的CMake资源库。
我们希望你门可以发现这些对CMake工程的帮助。我们也很期待你们关于进一步提升的反馈和意见。 关于这方面的更多消息,请通过VCBlog和我们的Visual C++跨平台页面直接联系我们。
