预设变量含义介绍
工程结构组织:
代码目录 ├── CMakeLists.txt ├── a │ ├── CMakeLists.txt │ └── a.cpp └── b ├── CMakeLists.txt ├── b.cpp └── b.h
路径相关:
- CMAKE_SOURCE_DIR:最顶层 CMakceLists.txt 所在的目录
- CMAKE_CURRENT_SOURCE_DIR:当前 CMakeLists.txt 所在的目录
其他:
CMAKE_PROJECT_NAME:当前项目库名
常见的命令
add_library:
normal library
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])
添加名为 name 的库,库的源文件可指定,也可以用 target_sources() 后续指定
库类型是STATIC(静态库)
/SHARED(动态库)
/MODULE(模块库)
name 命名必须全局唯一
生成的 library 名会根据 static 或 shared 成为 name.a 或 name.lib
举例:
add_library( ${CMAKE_PROJECT_NAME} S