CMakeList.txt使用指南

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值