project
为整个工程设置名称、版本和启用语言
project(<PROJECT-NAME> [LANGUAGES] [<language-name>...])
project(<PROJECT-NAME>
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
[LANGUAGES <language-name>...])
例:project(MyProject)
工程名称被保存在变量PROJECT_NAME中
参考链接:project — CMake 3.3.2 Documentation
message
向用户显示一条消息
message([<mode>] "message to display" ...)
<mode>决定了消息类型,有如下可选的关键字:
STATUS、WARNING、AUTHOR_WARNING、SEND_ERROR、FATAL_ERROR、DEPRECATION
例:message("Project Name: ${PROJECT_NAME}")
显示工程名称
参考链接:message — CMake 3.0.2 Documentation
set
以给定值设置一个正常、缓存或环境变量
set(<variable> <value>... [PARENT_SCOPE])
例:set(SRC_LIST main.cpp)
名为SRC_LIST的变量值为main.cpp
参考链接:set — CMake 3.4.3 Documentation
add_executable
使用指定的源文件,添加一个可执行文件到工程
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
source1 [source2 ...])
例:add_executable(executable main.cpp source.cpp)
可执行文件名为executable,源文件为main.cpp、source.cpp
参考链接:add_executable — CMake 3.3.2 Documentation
add_subdirectory
将一个子目录添加到构建
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
例:add_subdirectory(src bin)
src是添加的子目录,bin是二进制目录
参考链接:add_subdirectory — CMake 3.0.2 Documentation
if
根据条件执行一组命令
if(expression)
# then section.
COMMAND1(ARGS ...)
COMMAND2(ARGS ...)
...
elseif(expression2)
# elseif section.
COMMAND1(ARGS ...)
COMMAND2(ARGS ...)
...
else(expression)
# else section.
COMMAND1(ARGS ...)
COMMAND2(ARGS ...)
...
endif(expression)