| # Protobuf packaging |
| |
| This directory contains Bazel rules for building packaging and distribution |
| artifacts. |
| |
| *Everything in this directory should be considered internal and subject to |
| change.* |
| |
| ## Protocol compiler binary packaging |
| |
| 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. |
| |
| ## Source distribution packaging |
| |
| 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). |
| |
| ## C++ runtime binary distribution |
| |
| The `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. |