merlimat commented on issue #6311: The C++ Client distribution is basically 
borked.
URL: https://github.com/apache/pulsar/issues/6311#issuecomment-585408699
 
 
   @ashwinkapur 
   
   > It does not seem possible to build the C++ client except possibly by using 
your docker image which uses mystery binaries.
   
   We're building C++ client in many different environments on Linux, Mac and 
Windows. It would be more helpful if you could specify where it's failing to 
build for you.
   
   > Your Cmake files seem to use old style Cmake which specifies each 
directory and file etc as opposed to just specifying dependencies of groups of 
objects of libraries and letting Cmake figure it out. I'd be happy to submit a 
patch fixing this and using Modern Cmake
   
   Keep in mind that this project was not started a couple of days ago. The 
version of CMake was probably not supporting these directives back then. If you 
have any improvement, please submit!
   
   > You seem to be using a patched version of google protobuf version 2 to 
avoid needless memory allocations. 
   
   It's only used for Java. C++ protobuf is very efficient on its own.
   
   > Why not use google flatbuffers instead.
   
   When the protocol was designed, flatbuffer we relatively new and didn't 
support many languages (and required C++11 which we couldn't target at that 
point).
   
   > In the current head on github and the source distribution v 2.5.0 in 
protobuf/README.md at the bottom of the file you state:
   
   >> For C++ Client:
   >>The pre-generated C++ code is at pulsar-client-cpp/lib/PulsarApi.pb.cc and 
pulsar-client->> cpp/lib/PulsarApi.pb.h.
   
   >> You don't need to manually generate C++ code. The C++ code is 
automatically generated by cmake.
   
   > However, these files aren't there in either github or the source 
distribution.
   
   The `protobuf/README.md` section on C++ is out-of-date and misleading. The 
files are indeed generated by cmake (using the system `protoc`) and therefore 
are not anymore in the source tree (like they used to be in the past).
   
   > There is no directory called build in the source distribution. In the 
source distribution find . -name protobuf.patch finds no file. There is a 
build/docker/protobuf.patch on github on head but now I'm not sure if this is 
the same patch.
   
   Again, the readme is out of date. 
`./pulsar-common/generate_protobuf_docker.sh` will use the patched protoc to 
generate the `PulsarApi.java`.
   
   Please submit PRs to fix the stale README file
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to