常用命令
以Windows为例,对应VS相应设置选项
命令 | 作用 |
---|---|
project | 设置解决方案名称 |
SET | 设置参数,不管是预定义参数,还是自定义参数 |
ADD_EXECUTABLE | 生成可执行文件工程 |
ADD_LIBRARY | 生成库工程(lib/dll) |
AUX_SOURCE_DIRECTORY | 收集目录里的所有文件名并赋值给变量 |
INCLUDE_DIRECTORIES | 包含的头文件路径,相当于附加包含目录 |
LINK_DIRECTORIES | 包含的库文件路径,相当于附加库目录,有说尽量使用FIND_LIBRARY,原因还不知道 |
TARGET_LINK_LIBRARIES | 对单个目标设置依赖项 |
LINK_LIBRARIES | 对所有设置依赖项 |
ADD_DEPENDENCIES | 项目依赖项 |
ADD_DEFINITIONS | 相当于VS设置预编译头,在不改代码的情况下,进行宏开关的,也可以设置编译参数 -wall等 |
MESSAGE | 打印log信息 |
STRING | 字符串操作,可用正则表达式等 |
LIST | 列表操作 |
FILE | 文件操作 |
INSTALL | ?????? |
EXEC_PROGRAM | 执行外部程序 |
- LIST指令操作
list(LENGTH <list><output variable>)
list(GET <list> <elementindex> [<element index> ...]<output variable>)
list(APPEND <list><element> [<element> ...])
list(FIND <list> <value><output variable>)
list(INSERT <list><element_index> <element> [<element> ...])
list(REMOVE_ITEM <list> <value>[<value> ...])
list(REMOVE_AT <list><index> [<index> ...])
list(REMOVE_DUPLICATES <list>)
list(REVERSE <list>)
list(SORT <list>)
LIST指令 | 作用 |
---|---|
LENGTH | 返回list的长度 |
GET | 返回list中index的element到value中 |
LENGTH | 返回list的长度 |
APPEND | 添加新element到list中 |
FIND | 返回list中element的index,没有找到返回-1 |
INSERT | 将新element插入到list中index的位置 |
REMOVE_ITEM | 从list中删除某个element |
REMOVE_AT | 从list中删除指定index的element |
REMOVE_DUPLICATES | 从list中删除重复的element |
REVERSE | 将list的内容反转 |
SORT | 从list中删除重复的element |
- FIND类的指令,后续再说
如FIND_FILE,FIND_PATH,FIND_LIBRARY,FIND_PROGRAM,FIND_PACKAGE
CMAKE_INCLUDE_PATH:如果不使用 FIND_FILE 和 FIND_PATH的话,CMAKE_INCLUDE_PATH,没有任何作用。
CMAKE_LIBRARY_PATH:配合 FIND_LIBRARY() 使用。否则没有任何作用
CMAKE_MODULE_PATH:配合 FIND_PACKAGE()使用
- Cmake的语法, 以#为注释
- 字符串列表,用;或者空格分割 A;B;C
可以把它当成变成语言,可以有if等变成语言
IF()…ELSE()/ELSEIF()…ENDIF()
WHILE()…ENDWHILE()
FOREACH()…ENDFOREACH()