Did you build gRPC using CMake or autotools (I was using CMake, so things are specialized to that for the moment)? As I said the current state of the toolchain configuration for gRPC was temporary to enable me to develop the initial unit tests and benchmarks. It'll be some time before this is production ready, so there's some blood/sweat/tears required here. There will hopefully be some progress on this in the first half of this year so keep an eye out.
On Fri, Jan 4, 2019 at 12:26 PM Tim Bisson <biss...@gmail.com> wrote: > > Thanks Wes, > > Yea, we might be trying to play with the code a bit too early. > > I made a little more progress, but became stuck during make. I might be at > the same place as kszucs: > https://github.com/apache/arrow/pull/2547#issuecomment-425744800 > > This could be completely incorrect, but I made it past cmake by hard-coding > environment variables (such as GPR_STATIC_LIB) in ThirdPartyToolChain.cmake > because LOCATION wasn't defined. > - get_property(GPR_STATIC_LIB TARGET gRPC::gpr PROPERTY LOCATION) > + set(GPR_STATIC_LIB "/usr/local/lib/libgpr.a") > > However, now I fail on protobuf dependency: > [ 95%] Built target arrow-stream-to-file > make -f src/arrow/flight/CMakeFiles/arrow_flight_objlib.dir/build.make > src/arrow/flight/CMakeFiles/arrow_flight_objlib.dir/depend > make[2]: Entering directory '/home/t.bisson/git/arrow/cpp/debug' > make[2]: *** No rule to make target '../src/arrow/flight/protobuf', needed > by 'src/arrow/flight/Flight.pb.cc'. Stop. > make[2]: Leaving directory '/home/t.bisson/git/arrow/cpp/debug' > CMakeFiles/Makefile2:1450: recipe for target > 'src/arrow/flight/CMakeFiles/arrow_flight_objlib.dir/all' failed > make[1]: *** [src/arrow/flight/CMakeFiles/arrow_flight_objlib.dir/all] > Error 2 > make[1]: Leaving directory '/home/t.bisson/git/arrow/cpp/debug' > Makefile:143: recipe for target 'all' failed > > Google indirectly suggests header/c code generation might not be working. > However, I was able to generate the the files manually into their correct > directories. > > Any additional suggestions are appreciated. > > Thanks, > Tim > > > > > On Wed, Jan 2, 2019 at 7:28 PM Wes McKinney <wesmck...@gmail.com> wrote: > > > 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 > > > > >