32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# 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.
|