有一个 GitHub 存储库,其中仅包含 hpp
文件,没有 CMakeList.txt
文件。
我需要在我的项目中包含这些头文件。我不想手动克隆它们然后链接到它们。我希望每次调用 cmake
命令时,cmake 都会克隆它们并将它们放在某个内部文件夹中。
这可能吗?如果是,我该如何实现?
最佳答案
您可能需要考虑 DownloadProject 中使用的方法github 项目,其中包含一个为 GoogleTest 存储库执行下载步骤的示例。它在配置阶段而不是构建阶段调用 CMake 的 ExternalProject
模块,因此外部源在配置时可用,这似乎也是您想要的。在您的情况下,您不需要使用 add_subdirectory()
将任何内容从外部项目 pull 入主构建的后续步骤,因此只需下载就足够了。 this answer 也引用了这种方法.
使用 DownloadProject
看起来像这样(取自作为 github 项目的一部分提供的示例):
include(DownloadProject.cmake)
download_project(PROJ googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
)
然后,下载的源代码将在变量 ${googletest_SOURCE_DIR}
中存储的目录下可用。请参阅 DownloadProject
源代码中的完整通用实现,了解其工作原理。您可以简单地将它嵌入到您自己项目的源代码中,并重新使用它来有效地处理您可能需要的任何外部依赖项的下载。
关于c++ - 使用 cmake 从 github 中包含外部头文件库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44318262/