Hi Tim, This part of the codebase is a good ways from production-ready -- we aren't running the tests in CI for example. I put in enough hacks to be able to build using a local gRPC install that used CMake. Almost certainly a number of changes to FindGRPC.cmake will need to be made to get things working for more general installs of the libraries.
The gRPC build system is a bit of a pain because it may install all of its third-party dependencies, possibly causing conflicts with other parts of the Arrow build system. The Flight RPC project is definitely a priority for 2019 so would be glad to have you involved, and we can try to help resolve the immediate build issues. Wes On Wed, Jan 2, 2019, 8:01 PM Tim Bisson <biss...@gmail.com wrote: > Hello All, > > Apologies in advance for the beginner question as I'm not versed in cmake. > > I'm having difficulties getting Arrow dependencies satisfied with the C++ > version (cmake -DARROW_FLIGHT=ON ..). > > Does anyone have any tips or suggestions that enable them to compile arrow > with flight on? > > I've compiled and installed grpc (and protobuf as a submodule under grpc). > I also believe I followed the directions under flight correctly: > export PROTOBUF_HOME=/home/t.bisson/git/grpc/third_party/protobuf > export LD_LIBRARY_PATH=$PROTOBUF_HOME:/usr/local/lib > cmake -DARROW_FLIGHT=ON .. > > All the libraries are under /usr/local/lib, like libgpr.a. > > Thanks, > Tim > > > The error I'm receiving is this: > Added static library dependency zstd_static: > /home/t.bisson/git/a/cpp/debug/zstd_ep-install/lib/libzstd.a > -- PROTOBUF_HOME: /home/t.bisson/git/grpc/third_party/protobuf > -- Found the Protobuf headers: > /home/t.bisson/git/grpc/third_party/protobuf/src > -- Found the Protobuf shared library: /usr/local/lib/libprotobuf.so > -- Found the Protobuf library: /usr/local/lib/libprotobuf.a > -- Found the Protoc shared library: /usr/local/lib/libprotoc.so > -- Found the Protoc library: /usr/local/lib/libprotoc.a > -- Found the Protoc executable: /usr/local/bin/protoc > Added static library dependency protobuf_static: > /usr/local/lib/libprotobuf.a > CMake Error at cmake_modules/ThirdpartyToolchain.cmake:1252 (get_property): > get_property could not find TARGET gRPC::gpr. Perhaps it has not yet > been > created. > Call Stack (most recent call first): > CMakeLists.txt:523 (include) > > > CMake Error at cmake_modules/BuildUtils.cmake:86 (message): > No static or shared library provided for grpc_gpr > Call Stack (most recent call first): > cmake_modules/ThirdpartyToolchain.cmake:1253 (ADD_THIRDPARTY_LIB) > CMakeLists.txt:523 (include) > > > > ---------------------------------------------------------------------------------------- > > The line in ThirdpartToolchain.cmake is: > > get_property(GPR_STATIC_LIB TARGET gRPC::gpr PROPERTY LOCATION) > ADD_THIRDPARTY_LIB(grpc_gpr > STATIC_LIB ${GPR_STATIC_LIB}) > > However, setting GRPC_HOME brought this set of errors: > > Added static library dependency protobuf_static: > /usr/local/lib/libprotobuf.a > CMake Error at cmake_modules/ThirdpartyToolchain.cmake:1248 (find_package): > Could not find a package configuration file provided by "gRPC" with any > of > the following names: > > gRPCConfig.cmake > grpc-config.cmake > > Add the installation prefix of "gRPC" to CMAKE_PREFIX_PATH or set > "gRPC_DIR" to a directory containing one of the above files. If "gRPC" > provides a separate development package or SDK, be sure it has been > installed. > Call Stack (most recent call first): > CMakeLists.txt:523 (include) > > Do you think I should continue down this path of trying to satisfy the > dependency? > ---------- > > contents of /usr/local/lib: > $ ls /usr/local/lib > libaddress_sorting.a libgrpc.a > libgrpc_cronet.so.7 libgrpcpp_channelz.so.1 > libgrpc++.so.1 libgrpc++_unsecure.so.1 > libprotobuf-lite.la libprotoc.la > libaddress_sorting.so libgrpc++.a > libgrpc_cronet.so.7.0.0-dev libgrpcpp_channelz.so.1.18.0-dev > libgrpc++.so.1.18.0-dev libgrpc++_unsecure.so.1.18.0-dev > libprotobuf-lite.so libprotoc.so > libaddress_sorting.so.7 libgrpc_cronet.a > libgrpc++_error_details.a libgrpc++_reflection.a > libgrpc.so.7 libgrpc_unsecure.so.7 > libprotobuf-lite.so.17 libprotoc.so.17 > libaddress_sorting.so.7.0.0-dev libgrpc++_cronet.a > libgrpc++_error_details.so libgrpc++_reflection.so > libgrpc.so.7.0.0-dev libgrpc_unsecure.so.7.0.0-dev > libprotobuf-lite.so.17.0.0 libprotoc.so.17.0.0 > libgpr.a libgrpc_cronet.so > libgrpc++_error_details.so.1 libgrpc++_reflection.so.1 > libgrpc_unsecure.a liblogdevice.so libprotobuf.so > pkgconfig > libgpr.so libgrpc++_cronet.so > libgrpc++_error_details.so.1.18.0-dev libgrpc++_reflection.so.1.18.0-dev > libgrpc++_unsecure.a libprotobuf.a > libprotobuf.so.17 python2.7 > libgpr.so.7 libgrpc++_cronet.so.1 > libgrpcpp_channelz.a libgrpc.so > libgrpc_unsecure.so libprotobuf.la > libprotobuf.so.17.0.0 python3.6 > libgpr.so.7.0.0-dev libgrpc++_cronet.so.1.18.0-dev > libgrpcpp_channelz.so libgrpc++.so > libgrpc++_unsecure.so libprotobuf-lite.a libprotoc.a > > Thanks, > Tim >