私は、別々のリモート リポジトリ ( https://git.llvm.org/git/llvm、https://git.llvm.org/git/lld ) に保存されているLLVMとLLDを使用するプロジェクトに取り組んでいます。LLD をビルドするには、LLVM ビルド システムがその存在を検出し、そのビルド ターゲットを生成する LLVM 内でクローンを作成する必要があります (ドキュメント)。正確に:
LLD_CLONE_DIR = LLVM_CLONE_DIR/tools/lld
git submodule update --init --recursive
git サブモジュールを使用して、 (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 ソースを正しい場所にコピーすることに成功しました。私はまだより良い解決策に興味があります。