我正在一个bazel build
由 git 子模块组成的项目中运行,具有以下结构:
/work/
├── tensorflow/ [git submodule]
└── train/
└── DeepSpeech/ [git submodule]
└── native_client/
构建命令如下所示:
bazel build \
--config=monolithic \
-c opt \
--copt=-O3 \
--copt="-D_GLIBCXX_USE_CXX11_ABI=0" \
--copt=-fvisibility=hidden \
//native_client:libdeepspeech.so \
//native_client:generate_trie
我收到以下错误:
ERROR: /work/tensorflow/native_client/BUILD:6:1: Executing genrule //native_client:ds_git_version failed (Exit 1)
realpath: /work/train/DeepSpeech/native_client/../.git/: Not a directory
似乎在抱怨这/work/train/DeepSpeech/.git
不是一个目录,这将是正确的,因为它/work/train/DeepSpeech/.git
是一个文件,包含 git 子模块的 git 树的路径。
以下是 的内容/work/train/DeepSpeech/.git
:
gitdir: ../../.git/modules/train/DeepSpeech
我的问题是:有没有办法让 bazel 尊重我的存储库的子模块结构?理想情况下,我可以在bazel build
命令中传递一些标志,使其神奇地工作,但我对其他选项持开放态度。
谢谢你的帮助!