CMakeLists.txt模版

2019-02-09  本文已影响4人  生活简单些
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)
上一篇 下一篇

猜你喜欢

热点阅读