我在GitHub上有一个项目,它依赖于另一个项目(它有自己的git存储库)。两个项目都使用CMake进行编译。
我的项目在编译时取决于:
include/
个文件夹(一个由git repo直接发送,一个由CMake生成)包含标题; lib/
文件夹,其中包含我的项目将链接的已编译二进制库; bin/
文件夹。我希望当有人克隆我的git存储库时,该项目将被下载和编译,这些文件夹将被复制到我可以从我的项目中引用的可访问文件夹中。
有没有很好的方法来实现这一目标?也许下载该项目不是自动的,但我的目标是让新的克隆人尽可能少地设置环境。
编辑:我了解子模块,但我读到它们可以被提供更多功能的其他依赖项管理器所取代。但我的问题是,在克隆之后是否有办法让git调用bash脚本或类似的东西。
答案 0 :(得分:1)
直到现在我找到了那些:
但是现在只有bpkg似乎可以处理项目依赖项,所以我想这正是您要寻找的
答案 1 :(得分:0)
执行您所描述的内容的方式称为"子模块"。您可以在Git SCM book - Chap 7.11 Git Tools - Submodules。
中了解相关信息简短版本 - 子模块允许您在原始仓库中的子文件夹中基本上拥有另一个git仓库的克隆。您可以进行设置,以便以递归方式提取所有子模块,或者您可以手动更新子模块。
我还没有使用它们,但我看到很多警告它们可能很棘手 - 据说,它们的目的是专门处理这个用例。