CMakeList.txt文件详解

一.aux_source_directory(. DIR_SRCS)

  • 查找当前目录所有源文件 并将源文件列表保存到DIR_SRCS变量中
  • 不能查找子目录

二.add_library

2.1 添加一个库

image.png

add_library( [STATIC | SHARED | MODULE] [EXCLUDE_FROME_ALL]) source1 source2....sourceN

# 将native-lib.cpp添加为名为native-lib的动态库
add_lib rary( 
             native-lib
             SHARED
             native-lib.cpp )

三.Android 6.0以后导入预编译的库

3.1 添加一个C的动态库
CMAKE_C_FLAGS:是C的参数,表示动态库的位置,会传递给编译器

image.png

3.2 添加一个C++的动态库

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L[SO所在目录]")

四.include_directories

设置头文件目录
include_directories(./include ${MY_INCLUDE})

  • 设置头文件目录
  • 相当于g++选项中的-I参数

五.add_executable

设置可执行文件
add_executable( ${SRC_LIST})

  • name 可执行文件的名字
  • ${SRC_LIST} 可执行文件的文件

六.target_link_libraries

将若干库连接到目标库文件
target_link_libraries( lib1 lib2 lib3)

七.file

file命令

八.多源文件处理

使用aux_source_directory或者file将多个源文件保存到变量中

#查找当前目录所有源文件,不查找子目录
aux_source_directory(. DIR_SRCS)
# 也可以 
# file(GLOB DIR_SRCS *.c *.cpp)

add_library(
    native-lib
   SHARED
   ${DIR_SRCS}
)

一些内置变量

  • ${CMAKE_SOURCE_DIR} CMakeLists.txt所在目录

例子
引入so库

你可能感兴趣的:(CMakeList.txt文件详解)