vc工程移植到android,Visual Studio对安卓CMake 工程的支持

Visual Studio对安卓CMake 工程的支持

12/24/2015

4 分钟可看完

本文内容

[原文发表时间] 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,并解压。

89d61cce9f50a5b9efe06ee0e952f4c3.png

从https://cmake.org/download/安装CMake3.4.1,这是编译CMake做必须的,推荐Win32 安装器。

在解压缩的文件目录下,运行 cmake –G “Visual Studio 14” ,这个会从根目录下启动CMake ,大概会花15分钟左右。

这样将会使用Visual Studio 2015生成工具,和生成Visual Studio工程。目的是在Visual Studio中编译CMake。

7167ca82735d2fbfc91928416b0ad4ed.png

在CMake运行后,在out文件中应该有Visual Studio 工程。

运行 msbuild cmake.sln , 这将会编译CMake, 你可以在VS2015 开发者命令提示符运行msbuild。 这样编译的二进制文件将会在bin\Debug文件夹下。

或者将输出文件夹路径添加到 PATH ,或者确保从这个目录下运行cmake.exe ,这样运行它会启动修改CMake版本, 而不是之前安装的那个。

cb936667c9d03e1e5a6a24a8fe00ca5c.png

编译你的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中打开和编译这个已生成的文件。

6fbea0d22e251b54dd91fa014ba97bd2.png

已知的问题和局限性

1. 现阶段,我们只支持库,对象,静态链接库和动态链接库。我们不支持用于bootstrapper的封装工程(如Java),我们正计划尽快支持它。

2. 我们目前支持x86 和 ARM 架构,我们正计划不久的将来支持x64 和 AMD64。

下一阶段?

未来,我们会添加对x64和AMD64架构,以及packaging project support.我们很快回合Kitware合作,将这些集成到公开的CMake资源库。

我们希望你门可以发现这些对CMake工程的帮助。我们也很期待你们关于进一步提升的反馈和意见。 关于这方面的更多消息,请通过VCBlog和我们的Visual C++跨平台页面直接联系我们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值