cmake_minimum_required(VERSION 3.4.1)
# 添加静态库,多个静态库可以用多个add_library
add_library(
native_app_glue
STATIC
${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c)
# 添加共享库,一个CMakeLists.txt只有一个共享库
add_library(
native-lib
SHARED
plasma.c)
# Export ANativeActivity_onCreate(),
# Refer to: https://github.com/android-ndk/ndk/issues/381.
# set指令有定义变量的作用,前者为变量名,后者为变量值
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate")
target_include_directories(
native-lib
PRIVATE
${ANDROID_NDK}/sources/android/native_app_glue)
# 将library路径重命名为一个变量,以下仅仅一个“log”,是因为log是预编译好的library,无需指定具体路径,指定名称即可:
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log)
# 为了让你的library能调用到log library里的函数,你需要用以下命令将log library链接到你的library里. 也就是指定target library的依赖关系,你可以关联多个library,比如你在此CMakeLists.txt中定义的library、预编译好的第三方library以及系统library。
# 如果要将find_library的library加入依赖,则以引用变量方式:${log-lib}:
target_link_libraries(
native-lib
android
native_app_glue
log
m)
网友评论