代码之家  ›  专栏  ›  技术社区  ›  Brent

具有公共克隆目录的Git子模块

  •  1
  • Brent  · 技术社区  · 7 年前

    我在做一个项目 LLVM LLD ,它们存储在单独的远程存储库中( https://git.llvm.org/git/llvm , https://git.llvm.org/git/lld ). 要构建LLD,必须将其克隆到LLVM中,LLVM构建系统将检测其存在并为其生成构建目标( documentation ). 准确地说:

    LLD_CLONE_DIR = LLVM_CLONE_DIR/tools/lld

    我想使用git子模块,并调用 git submodule update --init --recursive (在CMake配置期间)。

    我发现git无法处理将一个子模块放入另一个子模块,例如:

    [submodule "contrib/llvm/tools/lld"]
        path = contrib/llvm/tools/lld
        url = https://git.llvm.org/git/lld
    [submodule "contrib/llvm"]
        path = contrib/llvm
        url = https://git.llvm.org/git/llvm
    

    我想让我的构建脚本构造一个符号链接,但在某些平台(Windows)上是不可靠的。如何构造目录以使LLVM构建系统满意,但我可以使用git子模块来克隆这两个存储库?

    更新 :我已成功使用CMake的file命令将lld源复制到正确的位置。不过,我还是对更好的解决方案感兴趣。

    0 回复  |  直到 7 年前
    推荐文章