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 SETGID
CONFIGURATIONS
不同环境有不同配置
需要把其它选项放在这个选项的后面才能生效
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_ALL
New 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> ...]]
)