Files

blst BUILD file

Due to the project structure of blst having go bindings and cdeps in different directories, gazelle is unable to appropriately generate the BUILD.bazel files for this repository. We have hand written the BUILD.bazel file here by the name blst.BUILD. PR #6539 added build support for blst, but relied on an http_archive repository rule to provide blst as a dependency. This pattern worked, but gazelle would not keep the dependency in sync with go.mod. There was a risk that go and bazel builds would include different versions of blst.

Now, we can switch to a go_repository model which gazelle understand how to sync with go.mod. However, we still have to tell gazelle how generate a BUILD.bazel file. Our solution is to tell gazelle not to generate any build file, then we provide blst.BUILD as a patch.

Generating the patch is relatively straight forward:

mkdir /tmp/a
mkdir /tmp/b
cp ./third_party/blst/blst.BUILD /tmp/b/BUILD.bazel
(cd /tmp && diff -urN a b) > ./third_party/com_github_supranational_blst.patch

If future edits are needed, edit the ./third_party/blst/blst.BUILD and regenerate the patch.