Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARROW-14506: [C++] Conda support for google-cloud-cpp #11851

Conversation

coryan
Copy link
Contributor

@coryan coryan commented Dec 3, 2021

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

- Conda defaults all its builds to C++17,
  [this bug](conda/conda-build#3375) goes into
  some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
  provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
  abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
  exposed through the headers, one must use C++17 to use
  `google-cloud-cpp` too.
@github-actions
Copy link

github-actions bot commented Dec 3, 2021

@coryan coryan marked this pull request as ready for review December 3, 2021 21:21
@@ -58,6 +58,7 @@ cmake \
-DARROW_DEPENDENCY_SOURCE=SYSTEM \
-DARROW_FLIGHT=ON \
-DARROW_FLIGHT_REQUIRE_TLSCREDENTIALSOPTIONS=ON \
-DARROW_GCS=ON \
-DARROW_HDFS=ON \
Copy link
Member

Choose a reason for hiding this comment

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

The meta.yml must also contain the google-cloud-cpp host dependency.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done. I suspect this may break things (see below).

# specific language governing permissions and limitations
# under the License.

google-cloud-cpp>=1.34.0
Copy link
Member

Choose a reason for hiding this comment

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

Is google-cloud-cpp only supported on linux?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

google-cloud-cpp is supported on Linux, Windows and macOS. The Conda packages only work on Linux and macOS:

conda-forge/google-cloud-cpp-feedstock#76

If needed, I am happy to fix the Conda package first and then resubmit this PR.

Copy link
Member

Choose a reason for hiding this comment

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

That would certainly simplify this PR. Until that we can use the bundled google-cloud-cpp.

@coryan
Copy link
Contributor Author

coryan commented Dec 6, 2021

Closing until the Conda packages are fixed.

Sign up for free to 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.

2 participants