【发布时间】:2017-11-29 13:04:19
【问题描述】:
我有一个包含许多不同目标的 CMake 构建 A、B、C 等。
外部应用程序负责构建,目前通过调用
cmake --build .
但是,这会构建 所有 目标,有时我只想构建一个子集,例如 A 和 B 而不是 C。
--target 标志只能给出一次,并且只接受一个目标。
我想我可以让 CMake 生成适当的 Makefile,然后显式调用 make A B,但这会带走 cmake --build 与构建系统无关的好处。
有什么好办法解决这个问题吗?
【问题讨论】:
-
每次您想要构建不同的目标子集时,您是否可以运行配置和生成步骤?如果是,那么答案很简单。 “配置和生成”是指
cmake -H<src_dir> -B<bin_dir>之类的东西,或更传统的cmake ..来自<bin_dir>。 -
您可以添加另一个具有依赖关系的自定义目标,例如
A和B。但是不,没有命令行选项可以构建以列表形式给出的多个目标。 -
忘了提到您还可以使用
EXCLUDE_FROM_ALL目录/目标属性定义ALL中包含的目标。 -
@light2yellow 我已经在每次构建之前运行了一个配置/生成步骤,所以这不是问题。你能更具体地说明这对我有什么帮助吗?
-
@Florian 不,我不想指定自定义目标,因为所需的组合会很大而且很烦人。
标签: cmake