【发布时间】:2021-04-27 11:42:42
【问题描述】:
我有一个库作为多个应用程序的外部引入并使用add_subdirectory 包含在内。由于使用的灵活性,它有四种构建风格:GUI/CLI 和共享/静态。 GUI 应用程序倾向于构建 GUI 风格,因为它产生的用户警告显示为弹出对话框。然而,一些命令行应用程序也使用它,这些应用程序使用在终端上产生用户警告的 CLI 版本。一些应用程序使用共享版本,因为它们使用使用相同库的其他库,并且需要共享资源,例如输出日志文件句柄。一些应用程序使用静态版本,因为它们是小型实用程序,我们希望将其作为独立的二进制文件分发,而无需依赖。
如果我正在构建一个只使用这四种风格之一的 CMake 项目,我真的只想构建一种风格的库。然而,尽管如此,CMake 仍坚持构建所有四个,这完全是浪费时间。
如果库被明确列为正在构建的其他东西的依赖项,我如何向 CMake 标记应该仅构建该库?
【问题讨论】:
-
你试过
add_subdirectory(<dir> EXCLUDE_FROM_ALL)吗? -
cmake --build <builddir> --target <only_your_target> -
@Corristo,这似乎不起作用,但是将它添加为库的每种风格的目标属性都可以。请写下来作为答案,以便我接受。
标签: cmake