Skip to content

[[install]]

声明安装规则,数组形式([[...]])可写多条。对应 install(TARGETS/FILES/DIRECTORY ...)

未完成功能

[[install]] 官方标记未完成,接口未来可能变化。

语法

toml
[[install]]
condition = "mycondition"
targets = ["mytarget", "mytest"]
destination = ["bin"]
component = "mycomponent"
files = ["content/my.png"]
dirs = ["include"]
configs = ["Release", "Debug"]
optional = false

字段速查

字段类型说明
targetsarray要安装的 target
destinationarray目标目录(binlibinclude 等)
componentstring组件名
filesarray额外文件
dirsarray整个目录
configsarray限定配置
optionalbool缺文件不报错
condition条件满足才安装

实例

toml
[project]
name = "mylib"

[target.mylib]
type = "static"
sources = ["src/mylib.cpp"]
include-directories = ["include"]

[[install]]
targets = ["mylib"]
destination = ["lib"]

[[install]]
dirs = ["include"]
destination = ["include"]
cmake
install(TARGETS mylib DESTINATION lib)
install(DIRECTORY include DESTINATION include)

cmkr install(或 cmake --install build)执行。

注意事项

  • targets 里的 target 必须在同一 cmake.toml 声明
  • 未完成功能:接口可能变
  • 想带组件打包(CPack 风格),用 component 分组

下一步