Skip to content

ARROW-5050: [C++] Specify dependencies of grpc_ep - #4064

Closed
mrkn wants to merge 1 commit into
apache:masterfrom
mrkn:cpp_grpc_depends_on_cares
Closed

ARROW-5050: [C++] Specify dependencies of grpc_ep#4064
mrkn wants to merge 1 commit into
apache:masterfrom
mrkn:cpp_grpc_depends_on_cares

Conversation

@mrkn

@mrknmrkn commented Mar 28, 2019

Copy link
Copy Markdown
Member

I encounter the following build error when I built the tarball of 0.13.0 RC.

[38/597] Performing configure step for 'grpc_ep'
FAILED: grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure
cd /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-build && /opt/brew/Cellar/cmake/3.13.3/bin/cmake -P /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-RELEASE.cmake && /opt/brew/Cellar/c
make/3.13.3/bin/cmake -E touch /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure
CMake Error at /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-RELEASE.cmake:16 (message):
Command failed: 1
'/opt/brew/Cellar/cmake/3.13.3/bin/cmake' '-DCMAKE_BUILD_TYPE=RELEASE' '-DCMAKE_PREFIX_PATH=';/opt/brew;/Users/mrkn/src/github.com/apache/arrow/cpp/build/gflags_ep-prefix/src/gflags_ep;/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/thirdparty/cares_ep-install;'' '-DgRPC
_CARES_PROVIDER=package' '-DgRPC_GFLAGS_PROVIDER=package' '-DgRPC_PROTOBUF_PROVIDER=package' '-DgRPC_SSL_PROVIDER=package' '-DgRPC_ZLIB_PROVIDER=package' '-DCMAKE_CXX_FLAGS= -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG -O3 -DNDEBUG -fPIC' '-DCMAKE_C_FLAGS= -Qunused-arguments -O3 -DNDEBUG -O3 -DNDEBUG -fPIC' '-DCMAKE_INSTALL_PREFIX=/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/thirdparty/grpc_ep-install' '-DCMAKE_INSTALL_LIBDIR=lib' '-DProtobuf_PROTOC_LIBRARY=/opt/brew/lib/libprotoc.dylib' '-DBUILD_SHARED_LIBS=OFF' '-GNinja' '/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep' See also /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-*.log

grpc_ep's build log is given below:

$ cat /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-*.log
CMake Error at cmake/cares.cmake:38 (find_package):
Could not find a package configuration file provided by "c-ares" with any
of the following names:
c-aresConfig.cmake
c-ares-config.cmake
Add the installation prefix of "c-ares" to CMAKE_PREFIX_PATH or set
"c-ares_DIR" to a directory containing one of the above files. If "c-ares"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
CMakeLists.txt:139 (include)
(snip)

This build log says that grpc_ep couldn't find cares_ep.
In this case, grpc_ep was built before cares_ep.

This pull-request could fix this dependency error on my environment.

@mrknmrkn changed the title Specify dependencies of grpc_epARROW-5050: Specify dependencies of grpc_epMar 28, 2019
@mrknmrkn changed the title ARROW-5050: Specify dependencies of grpc_epARROW-5050: [C++] Specify dependencies of grpc_epMar 28, 2019
@mrkn

mrkn commented Mar 28, 2019

Copy link
Copy Markdown
MemberAuthor

IMHO this isn't necessary for 0.13.0.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. For those who like me are surprised that add_dependencies doesn't suffice, here is what the CMake doc says:

Because the external project uses additional custom targets internally for each step, the DEPENDS option is the most convenient way to ensure all of those steps depend on the other targets. Simply doing add_dependencies(<name> <targets>) will not make any of the steps dependent on <targets>.

@wesmwesm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. Flight / gRPC is still pretty alpha in 0.13 so I don't think this needs to be fixed in RC4 (Flight isn't in the verification script yet either)

https://issues.apache.org/jira/browse/ARROW-5054

@wesmwesm closed this in a49d177Mar 28, 2019
@mrkn
mrkn deleted the cpp_grpc_depends_on_cares branch March 28, 2019 16:58
kou pushed a commit that referenced this pull request Mar 31, 2019
I encounter the following build error when I built the tarball of 0.13.0 RC.
```
[38/597] Performing configure step for 'grpc_ep'
FAILED: grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure
cd /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-build && /opt/brew/Cellar/cmake/3.13.3/bin/cmake -P /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-RELEASE.cmake && /opt/brew/Cellar/c
make/3.13.3/bin/cmake -E touch /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure
CMake Error at /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-RELEASE.cmake:16 (message):
Command failed: 1
'/opt/brew/Cellar/cmake/3.13.3/bin/cmake' '-DCMAKE_BUILD_TYPE=RELEASE' '-DCMAKE_PREFIX_PATH=';/opt/brew;/Users/mrkn/src/github.com/apache/arrow/cpp/build/gflags_ep-prefix/src/gflags_ep;/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/thirdparty/cares_ep-install;'' '-DgRPC
_CARES_PROVIDER=package' '-DgRPC_GFLAGS_PROVIDER=package' '-DgRPC_PROTOBUF_PROVIDER=package' '-DgRPC_SSL_PROVIDER=package' '-DgRPC_ZLIB_PROVIDER=package' '-DCMAKE_CXX_FLAGS= -Qunused-arguments -fcolor-diagnostics -O3 -DNDEBUG -O3 -DNDEBUG -fPIC' '-DCMAKE_C_FLAGS= -Qunused-arguments -O3 -DNDEBUG -O3 -DNDEBUG -fPIC' '-DCMAKE_INSTALL_PREFIX=/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/thirdparty/grpc_ep-install' '-DCMAKE_INSTALL_LIBDIR=lib' '-DProtobuf_PROTOC_LIBRARY=/opt/brew/lib/libprotoc.dylib' '-DBUILD_SHARED_LIBS=OFF' '-GNinja' '/Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep' See also /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-*.log
```
grpc_ep's build log is given below:
```
$ cat /Users/mrkn/Downloads/apache-arrow-0.13.0/cpp/build/grpc_ep-prefix/src/grpc_ep-stamp/grpc_ep-configure-*.log
CMake Error at cmake/cares.cmake:38 (find_package):
Could not find a package configuration file provided by "c-ares" with any
of the following names:
c-aresConfig.cmake
c-ares-config.cmake
Add the installation prefix of "c-ares" to CMAKE_PREFIX_PATH or set
"c-ares_DIR" to a directory containing one of the above files. If "c-ares"
provides a separate development package or SDK, be sure it has been
installed.
Call Stack (most recent call first):
CMakeLists.txt:139 (include)
(snip)
```
This build log says that grpc_ep couldn't find cares_ep.
In this case, grpc_ep was built before cares_ep.
This pull-request could fix this dependency error on my environment.
Author: Kenta Murata <mrkn@mrkn.jp>
Closes#4064 from mrkn/cpp_grpc_depends_on_cares and squashes the following commits:
1a37054 <Kenta Murata> Specify dependencies of grpc_ep
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@mrkn@wesm@pitrou