conan-io / wishlist

This repo is to propose libraries, frameworks, and code in general that users would like to have in conan
MIT License
49 stars 5 forks source link

Apache Thrift - An interface definition language and binary communication protocol #143

Closed helmesjo closed 4 years ago

helmesjo commented 6 years ago

Repo: https://github.com/apache/thrift

About:

Thrift is an interface definition language and binary communication protocol[1] used for defining and creating services for numerous languages. It forms a remote procedure call (RPC) framework [..]

-Wikipedia

Note on dependencies:

If your C++ environment implements C++11 or later, thrift will automatically use std::shared_ptr. Otherwise you will need the boost library to provide a shared_ptr implementation for C++ environments pre-C++11. [..]

-Thrift docs

helmesjo commented 6 years ago

I've started working on a recipe that can be found here: helmesjo/conan-thrift. It is based on the bincrafters conan template.

Build Status Build status

helmesjo commented 6 years ago

Builds on GCC, Clang, Apple-Clang & Visual Studio (see here.

At the time of writing there are two missing pre-built packages (flex & bison) which fails two different jobs.

Considering this one done!

solvingj commented 6 years ago

Great Job BTW. Hopefully we'll get the flex and bison working so your badges can all be green :)

helmesjo commented 6 years ago

Thanks! :)

Croydon commented 5 years ago

@helmesjo Could you please re-open this as it isn't in conan-center right now?

Would you also be interested in bringing it to Bincrafters?

helmesjo commented 5 years ago

Done!

I'm not sure how much time I can put in atm, but if anyone would be willing to lead the way I'll do my best to tag along!

Croydon commented 4 years ago

Done via https://github.com/conan-io/conan-center-index/pull/1700

helmesjo commented 4 years ago

@Croydon I guess that package does not include the thrift compiler/executable? So we need to use thrift_installer/0.13.0@bincrafters/stable for that?

Edit Actually, the compiler is built (BUILD_COMPILER=True), but the bin folder is never added to the envars: self.env_info.path.append(os.path.join(self.package_folder, "bin"))

uilianries commented 4 years ago

@helmesjo the package in Conan Center Index includes the executable.

helmesjo commented 4 years ago

@uilianries Yes, but the bin folder is not appended to the package envars (this is needed for the virtualenv generator, allowing find_program(thrift ...) in cmake to work automagically).

uilianries commented 4 years ago

@helmesjo indeed! I'll open a PR to fix it. Thanks!

Croydon commented 4 years ago

Generally speaking, we don't split binaries and libraries anymore. The regular case should be now one package, no separate xyz_installer package anymore