注意点
1.cmake指令不区分大小写
2.变量使用${} 方式取值,但是在if控制语句中直接使用变量名
3.指令(参数1 参数2 ...),参数使用括号起,参数之间使用空格或者分号隔开
CMAKE_SOURCE_DIR
工程源代码所在根目录,主工程CMakeLists.txt所在目录
CMAK_BINARY_DIR
主工程编译发生的目录
include
加载和运行指定CMake文件/模块
格式:
include(<file|module> [OPTIONAL] [RESULT_VARIABLE <VAR>][NO_POLICY_SCOPE])
- OPTIONAL:如果设置,指定文件不存在也不会报错
- RESULT_VARIABLE <VAR> 如果指定文件存在,<VAR>的值指向文件完整文件名,如果不存在,值为NOTFOUND
set
设置变量
格式:
set(<variable> <value> [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])
configure_file
格式:
configure_file(<input> <output> [COPYONLY] [ESCAPE_QUOTES] [@ONLY] [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
- COPYONLY:仅拷贝<input>文件里的内容到<output>文件,不进行变量替换
- ESCAPE_QUOTES:使用反斜杠(C语言风格)来进行转义
- @ONLY:限制替换, 仅仅替换
@VAR@
变量, 不替换${VAR}
变量- NEWLINE_STYLE:指定输入文件的新行格式, 例如:Unix 中使用的是
\n
, windows 中使用的\r\n
COPYONLY
和NEWLINE_STYLE
是冲突的,不能同时使用将
<input>
文件里面的内容全部复制到<output>
文件中;根据参数规则,替换@VAR@
或${VAR}
变量;示例