【问题标题】:CMAKE: Configure/build a foreign package from your packageCMAKE:从你的包配置/构建一个外部包
【发布时间】:2021-05-22 15:41:39
【问题描述】:

假设您的 CMake C++ 项目依赖于某些外部库,例如具有 Google Benchmarks/Test

我知道我可以独立配置和安装外部库,以便以后在构建我的个人项目时,我可以访问它的 CMake 文件,该文件将很好地满足依赖关系(它会很好地添加它的标题和库文件)

我的问题是:

  • 在配置我的项目时是否可以直接配置/构建这个外部库而不安装这个外部库?

【问题讨论】:

  • 是的。这是个好主意吗?好吧,也许当你开始这样做时,如果你使用依赖管理器来管理依赖,你的生活会简单得多。 vcpkg,conan.io,...
  • @spectras 是的,我同意。不幸的是,在我的具体情况下,我无法真正做到这一点,我可以使用的唯一依赖项帮助是 CMake
  • 对于那些无聊的构建,有一个cmake.org/cmake/help/latest/module/ExternalProject.html 模块可以为他们的生活带来~问题~ 乐趣:)
  • 你有我的同情。那么 zaufi 链接的 ExternalProject 可能是你最好的选择。

标签: c++ makefile cmake configure


【解决方案1】:

是的。看看https://cmake.org/cmake/help/latest/module/FetchContent.html

这正是我用于fetching GTest 的内容。

想法很简单 - FetchContent 将为您克隆一个 repo,然后您在该 repo 中执行add_subdirectory,您可以管理所有子项目详细信息(假设项目使用 CMake 并且编写正确)。

【讨论】:

    【解决方案2】:

    如果你想构建你已经获取的内容,我建议ExternalProject 甚至比FetchContent 更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2021-12-29
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多