Android.mk 转换 cmakelists.txt 注意要点

前言

Android Studio推荐使用CMakeLists.txt,对于已经使用Android.mk写的编译文件,转换为CMakeLists.txt即可。

本文就是针对转换的一些要点做记录和介绍。

CMakeLists.txt文件头

CMake的规则很多,需要了解详情的请到其官网,这里只介绍常用的一些格式要点。

CMakeLists.txt文件头需要声明一下最小版本:

cmake_minimum_required(VERSION 3.4.1)

$(call my-dir)

对应CMakeLists.txt中,用 ${CMAKE_CURRENT_SOURCE_DIR}。

例子,Android.mk:

LOCAL_PATH := $(call my-dir)/..

对应CMakeLists.txt:

set(LOCAL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/..)

变量赋值、追加

比较简单,看例子:

Android.mk:

JAVA_MODULE := hello
JAVA_MODULE += world

CMakeLists.txt:

set(JAVA_MODULE hello)
set(JAVA_MODULE ${JAVA_MODULE} world)

字符串替换

Android.mk:

JAVA_PACKAGE_DIR := src/$(subst .,/,$(JAVA_PACKAGE))

CMakeLists.txt:

STRING(REPLACE "." "/" JAVA_PACKAGE_DIR $(JAVA_PACKAGE))

生成静态库/动态库

Android.mk:

include $(BUILD_STATIC_LIBRARY)

CMakeLists.txt:

add_library( hellowold STATIC ${LOCAL_SRC_FILES})

同理,动态库的话,使用动态库的关键字就行:

CMakeLists.txt:

add_library( hellowold SHARED ${LOCAL_SRC_FILES})

 

你可能感兴趣的:(Android)