install(TARGETS <target>... [...])
install(IMPORTED_RUNTIME_ARTIFACTS <target>... [...])
install({FILES | PROGRAMS} <file>... [...])
install(DIRECTORY <dir>... [...])
install(SCRIPT <file> [...])
install(CODE <code> [...])
install(EXPORT <export-name> [...])
install(RUNTIME_DEPENDENCY_SET <set-name> [...])生成各类安装命令。
安装命令会顺序执行。
add_subdirectory() 命令引入的安装也会顺序执行常见的共同选项
DESTINATION 指定安装文件的路径,支持绝对路径和相对路径
相对路径
CMAKE_INSTALL_PREFIX 。可以用DESTDIR 覆盖。cpack 安装器不支持绝对路径,尽可能用相对路径。PERMISSIONS 支持的值
OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ, GROUP_WRITE, GROUP_EXECUTE, WORLD_READ, WORLD_WRITE, WORLD_EXECUTE, SETUID, and SETGIDCONFIGURATIONS不同环境有不同配置
需要把其它选项放在这个选项的后面才能生效
install(TARGETS target
CONFIGURATIONS Debug
RUNTIME DESTINATION Debug/bin)
install(TARGETS target
CONFIGURATIONS Release
RUNTIME DESTINATION Release/bin)COMPONENT指定关联的组件名。当安装的时候设置了组件名,则只会执行所关联的安装规则。在安装过程中没指定组件名就会安全全部组件,除非加上了
EXCLUDE_FROM_ALL 默认值:
Unspecified ,可以通过CMAKE_INSTALL_DEFAULT_COMPONENT_NAME 控制EXCLUDE_FROM_ALLNew in version 3.6.
标注此安装排除在完全安装外
RENAME重命名被安装的文件
只有通过命令安装单个文件的时候才生效
OPTIONAL 如果被安装的文件不存在不报错
Installing Targets
install(TARGETS targets... [EXPORT <export-name>]
[RUNTIME_DEPENDENCIES args...|RUNTIME_DEPENDENCY_SET <set-name>]
[[ARCHIVE|LIBRARY|RUNTIME|OBJECTS|FRAMEWORK|BUNDLE|
PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
[DESTINATION <dir>]
[PERMISSIONS permissions...]
[CONFIGURATIONS [Debug|Release|...]]
[COMPONENT <component>]
[NAMELINK_COMPONENT <component>]
[OPTIONAL] [EXCLUDE_FROM_ALL]
[NAMELINK_ONLY|NAMELINK_SKIP]
] [...]
[INCLUDES DESTINATION [<dir> ...]]
)