cmake_minimum_required
设置所需的最低cmake版本
cmake_minimum_required(VERSION major[.minor[.patch[.tweak]]]
[FATAL_ERROR])
execute_process
执行一个或多个子进程
execute_process(COMMAND <cmd1> [args1…]]
[COMMAND <cmd2> [args2…] […]]
[WORKING_DIRECTORY <directory>]
[TIMEOUT <seconds>]
[RESULT_VARIABLE <variable>]
[OUTPUT_VARIABLE <variable>]
[ERROR_VARIABLE <variable>]
[INPUT_FILE <file>]
[OUTPUT_FILE <file>]
[ERROR_FILE <file>]
[OUTPUT_QUIET]
[ERROR_QUIET]
[OUTPUT_STRIP_TRAILING_WHITESPACE]
[ERROR_STRIP_TRAILING_WHITESPACE])
COMMEND
子进程的命令行
WORKING_DIRECTORY
被指定的目录将被设置为子进程的当前工作目录
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
当前正被处理的源目录的路径
TIMEOUT
如果子进程没有在指定的时间内完成将会被终止
OUTPUT_VARIABLE
所命名的变量将与标准输出和标准误差管道的内容分别被设置。
project
设置一个名称,版本,和整个项目所用的语言。
project(<PROJECT-NAME> [LANGUAGES] […])
project(<PROJECT-NAME>
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
[LANGUAGES <language-name>…])
message
给用户显示一条消息
message([<mode>] “message to display” …)
Set
为某个变量设置某个值
set(<variable> <value>
[[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])
CMAKE_CXX_EXTENSIONS
对CXX_EXTENSIONS属性的默认值,它是一个布尔型变量,用来指定是否请求编译器的扩展设置OFF 或者 ON
set(CMAKE_CXX_STANDARD 11)
使其包含c++11特性,等同于g++时的-std=c++11
set(CMAKE_C_STANDARD 11)
同理,包含c 11特性
set(CMAKE_SYSTEM_NAME linux64)
设置系统名称
set(POSITION_INDEPENDENT_CODE ON/OFF)
确定位置独立的可执行文件或共享库中是否将被创建。
Set(EXECUTABLE_OUTPUT_PATH)
设置可执行文件路径位置,后续有设置会被覆盖
${PROJECT_BINARY_DIR}
该项目的顶层目录,完整路径。
OUT_API_FOLDER /build/linux64/release/
发布版本
${LIBRARY_OUTPUT_PATH}
库文件目录,如果后续有设置会被覆盖。
Optione
规定一个用户可以选择的选项
option(<option_variable> “help string describing option”
[initial value])
Include
加载和从文件或模块运行CMake;的代码
include(<file|module> [OPTIONAL] [RESULT_VARIABLE ]
[NO_POLICY_SCOPE])
Load and run CMake code from a file or module.
link_directories
根据目录中的链接寻找库
link_directories(directory1 directory2 …)
include_directories
为build添加include路径
include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 …])
Message
显示一条消息给用户
message([<mode>] “message to display” …)
(none) = Important information
STATUS = Incidental information
WARNING = CMake Warning, continue processing
AUTHOR_WARNING = CMake Warning (dev), continue processing
SEND_ERROR = CMake Error, continue processing,
but skip generation
FATAL_ERROR = CMake Error, stop processing and generation
DEPRECATION = CMake Deprecation Error or Warning if variable
CMAKE_ERROR_DEPRECATED or CMAKE_WARN_DEPRECATED
is enabled, respectively, else no message.
STREQUAL:字符串比较
add_definitions
使用指定的源文件将库添加到项目中
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
source1 [source2 …])
link_libraries
将指定库添加到项目。
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
source1 [source2 …])
SET(CMAKE_BUILD_TYPE "Debug"or”Release”)
设置编译版本
set_target_properties
设置目标属性,该命令的语法是列出所有你要改变的文件,然后提供你要设置下一个值。
set_target_properties(target1 target2 …
PROPERTIES prop1 value1
prop2 value2 …)
target_link_libraries
为一个目标或其依赖建立库
target_link_libraries(<target> … <item>… …)
add_executable
使用指定的文件为项目添加可执行程序。
add_executable( [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
source1 [source2 …])
target_link_libraries
连接一个给定的目标时,指定库或标志使用。
target_link_libraries(<target> [item1 [item2 […]]]
[[debug|optimized|general] <item>] …)
install
install(TARGETS targets… [EXPORT <export-name>]
[[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|
PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
[DESTINATION <dir>]
[INCLUDES DESTINATION [<dir> …]]
[PERMISSIONS permissions…]
[CONFIGURATIONS [Debug|Release|…]]
[COMPONENT <component>]
[OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]
] […])
附:cmake3.7 index地址:https://cmake.org/cmake/help/v3.7/genindex.html