README.md
1# Publish pre-compiled protoc artifacts
2``protoc`` is the compiler for ``.proto`` files. It generates language bindings
3for the messages and/or RPC services from ``.proto`` files.
4
5Because ``protoc`` is a native executable, the scripts under this directory
6publish a ``protoc`` executable (a.k.a. artifact) to Maven repositories. The
7artifact can be used by build automation tools so that users would not need to
8compile and install ``protoc`` for their systems.
9
10If you would like us to publish protoc artifact for a new platform, please
11open an issue to request it.
12
13## Maven Location
14The published protoc artifacts are available on Maven here:
15
16 https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/
17
18## Versioning
19The version of the ``protoc`` artifact must be the same as the version of the
20Protobuf project.
21
22## Artifact name
23The name of a published ``protoc`` artifact is in the following format:
24``protoc-<version>-<os>-<arch>.exe``, e.g., ``protoc-3.6.1-linux-x86_64.exe``.
25
26Note that artifacts for linux/macos also have the `.exe` suffix but they are
27not windows binaries.
28
29## System requirement
30Install [Apache Maven](http://maven.apache.org/) if you don't have it.
31
32The scripts only work under Unix-like environments, e.g., Linux, MacOSX, and
33Cygwin or MinGW for Windows. Please see ``README.md`` of the Protobuf project
34for how to set up the build environment.
35
36## Tested build environments
37We have successfully built artifacts on the following environments:
38- Linux x86_32 and x86_64:
39 - Centos 6.9 (within Docker 1.6.1)
40 - Ubuntu 14.04.5 64-bit
41- Linux aarch_64: Cross compiled with `g++-aarch64-linux-gnu` on Ubuntu 14.04.5 64-bit
42- Mac OS X x86_32 and x86_64: Mac OS X 10.9.5
43