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
> >
>

Reply via email to