I was finally able to build and run the flight-test-server/flight-test binaries by hacking the arrow/flight/CMakeLists.txt to manually satisfy the dependencies.
I think part of my issue was trying to use a separate local grpc installation to satisfy dependencies. I can now work through the test code to understand flight internals and also work backward to get to an automated arrow flight build state. Thanks, Tim On Mon, Jan 7, 2019 at 9:09 AM Wes McKinney <wesmck...@gmail.com> wrote: > 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 > > > > > > > >