-
Notifications
You must be signed in to change notification settings - Fork 46
I have packaged current version 1.28.1 drawing inspiration from this recipe #37
Comments
Why don't you use the abseil recipe from conan-center? Same with the protobuff package (it has an option to build the protoc binaries, but no idea if it is suitable). The protoc_installer and grpc recipes are throwing some warnings regarding to the conan-center error knowledge. More information here, at the very bottom it is described how to enable the hooks, which warn you about those errors) Anyway the package creation works on windows and the package layout looks clean. (But i didn't took an in-depth look) |
I have tried to stick very close to the 3rd party dependencies of the v1.28.1 of gRPC:
The abseil recipe from conan-center is older and from the master branch. The version I packaged is from the Long-Term Support branch which contains the tag above.
I am actually using the protobuf package from conan-center (v3.11.4), but not the protoc_installer because it is only available at version v3.9.1, and the code it generates is not compatible with the protobuf library v3.11.4 .
Thank you for the quick check. I will try to submit a pull request to conan-io center. It will contain three commits, one for each package. I am probably tripping the fPIC and test_package rules. |
grpc can't be moved to CCI as long as (at the very least) conan-io/conan-center-index#1179 isn't resolved, then it is the obvious goal |
@0x8000-0000 Which advantages does your recipes have over the current variant here? |
Hi @Croydon , Functionally, it packages the latest version of gRPC, and uses more recent version of protobuf. Don't know if I would be missing anything going with the older versions, but I'm starting a new project and I would like to be as current as possible. Implementation-wise, I decided to scrap playing with the gRPC configuration of package vs module and trying to trick the package to accept protobuf from Conan (with my current version of CMake, it was trying to use the CMake bundled FindProtobuf.cmake, which was failing to find protobuf/protoc installed at the OS level). So I am no longer including abseil-cpp.cmake, cares.cmake, protobuf.cmake but I'm letting the variables from conanbuildinfo.cmake provide what's needed. I am disclaiming any in-depth knowledge of Conan packaging... I first started using it last week, and one colleague needed gRPC. I did the customary Internet search, found a few attempts - and none seemed satisfactory enough, so I "wasted" my weekend making a package. I am hoping I haven't strayed too far from 'idiomatic Conan', or that some of this can be reused for the official packages. As I acknowledged in my Readme, my version of the packages are based on existing upstream packages with tweaks determined through trial and error and lots of frustration. All mistakes are mine. |
Contributions to add a newer version are very welcome. We can't package branches, as those are a moving target. For projects without real versions, we use date based versions which use a commit from the default branch. https://github.com/abseil/abseil-cpp/tree/b832dce8489ef7b6231384909fd9b68d5a5ff2b7 is what grpc uses in v1.28.1 https://github.com/abseil/abseil-cpp/tree/b832dce8489ef7b6231384909fd9b68d5a5ff2b7 mentions Would you be willing to contribute this version to CCI? |
grpc 1.28.1 says this in .gitmodules:
Then if we look in abseil-cpp:
So all three lts_ tags are from the 'lts_2020_02_05' branch. We can package tags, and this is what I've did: just packaged the latest tag on the branch.
With great pleasure. I'll submit a pull request in the next couple of days. Then I'll go wait for a recent protobuf/protoc package :) |
This was easy: conan-io/conan-center-index#1523 |
This recipe is now in the Conan Center Index. Please migrate to the recipe version there. Thanks! |
I have packaged current version of grpc at https://github.com/0x8000-0000/conan-recipes, tested on Linux only. This is my first effort at packaging, so feedback is welcome. I have taken a different approach of handling the 3rd party dependencies, so I don't know how to make a pull request to suggest and update to your package - but if you want to borrow my implementation, please go ahead.
I haven't tried it on Windows yet, or tried anything more strenuous than run the greeter example.
The text was updated successfully, but these errors were encountered: