This directory contains Bazel rules for building packaging and distribution artifacts.
Everything in this directory should be considered internal and subject to change.
The protocol compiler is used in binary form in various places. There are rules which package it, along with commonly used
.proto files, for distribution.
Protobuf releases include source distributions, sliced by target language (C++, Java, etc.). There are rules in this package to define those source archives. These depend upon
pkg_files rules elsewhere in the repo to get the contents.
The source distribution files should include the outputs from
autogen.sh, but this isn't something we can reliably do from Bazel. To produce fully functioning source distributions, run
autogen.sh before building the archives (this populates the necessary files directly into the source tree).
cc_dist_library rule creates composite libraries from several other
cc_library targets. Bazel uses a “fine-grained” library model, where each
cc_library produces its own library artifacts, without transitive dependencies. The
cc_dist_library rule combines several other libraries together, creating a single library that may be suitable for distribution.