git clone的项目依赖

时间:2017-10-14 23:17:27

标签: c++ git bash

我在GitHub上有一个项目,它依赖于另一个项目(它有自己的git存储库)。两个项目都使用CMake进行编译。

我的项目在编译时取决于:

  • 两个include/个文件夹(一个由git repo直接发送,一个由CMake生成)包含标题;
  • 一个lib/文件夹,其中包含我的项目将链接的已编译二进制库;
  • 包含实用工具的bin/文件夹。

我希望当有人克隆我的git存储库时,该项目将被下载和编译,这些文件夹将被复制到我可以从我的项目中引用的可访问文件夹中。

有没有很好的方法来实现这一目标?也许下载该项目不是自动的,但我的目标是让新的克隆人尽可能少地设置环境。

编辑:我了解子模块,但我读到它们可以被提供更多功能的其他依赖项管理器所取代。但我的问题是,在克隆之后是否有办法让git调用bash脚本或类似的东西。

2 个答案:

答案 0 :(得分:1)

直到现在我找到了那些:

但是现在只有bpkg似乎可以处理项目依赖项,所以我想这正是您要寻找的

答案 1 :(得分:0)

执行您所描述的内容的方式称为"子模块"。您可以在Git SCM book - Chap 7.11 Git Tools - Submodules

中了解相关信息

简短版本 - 子模块允许您在原始仓库中的子文件夹中基本上拥有另一个git仓库的克隆。您可以进行设置,以便以递归方式提取所有子模块,或者您可以手动更新子模块。

我还没有使用它们,但我看到很多警告它们可能很棘手 - 据说,它们的目的是专门处理这个用例。