前言
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})