Closed tgoodyear closed 7 years ago
I would further suggest that CMake should search the system for an installed version of the protobuf compiler, and skip downloading/installing/building protobufs if it finds one.
Can CMake behave in a Go-like fashion where you provide the name/Git URL of a package and it uses it if present and downloads/compiles/installs it otherwise?
The second half is implemented already. I think something like find_package
could be used to look for protoc
in the usual locations.
edit: just implemented this in #185
From https://github.com/google/protobuf/releases/tag/v3.0.0
A new notion "syntax" is introduced to specify whether a .proto file uses proto2 or proto3:
// foo.proto syntax = "proto3"; message Bar {...} If omitted, the protocol buffer compiler generates a warning and "proto2" is used as the default. This warning will be turned into an error in a future release.
We recommend that new Protocol Buffers users use proto3. However, we do not generally recommend that existing users migrate from proto2 from proto3 due to API incompatibility, and we will continue to support proto2 for a long time.
I think we should add syntax = "proto2";
to the top of all the proto files and then upgrade to the version 3.0.0 release.
The latest release of 2.x is 2.6.1, released Oct 2014. 2.7 also exists and claims to be non-breaking.
Protobufs 3.0 hit their GA release last month, we should consider moving to this as a longer term plan.