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
>

Reply via email to