具有通用克隆目录的Git子模块

时间:2018-06-19 16:57:46

标签: git git-submodules llvm-c++-api lld

我正在研究一个使用LLVMLLD的项目,它们存储在单独的远程存储库(https://git.llvm.org/git/llvmhttps://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 个答案:

没有答案