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-4873: [C++] Clarify documentation about how to use external ARROW_PACKAGE_PREFIX while also using CONDA dependency resolution #3901
Conversation
Hm this seems to break the Windows builds. I'll take a closer look... |
@wesm I'm seeing a similar error to this, it seems that some of the conda dependencies don't have a |
In your case, it looks like |
@xhochy am I reading this wrong? |
@xhochy This removes the logic that overrides the AUTO default dependency source when $CONDA_PREFIX is set. I think that we should make -DARROW_DEPENDENCY_SOURCE=CONDA explicit |
@bkietz yeah that is probably the issue. Is there a JIRA about the double-conversion thing? |
The modules should be in |
Hmm looks like the macOS build is finding the system boost =/
|
Here's an in-progress Appveyor build on my fork: https://ci.appveyor.com/project/wesm/arrow/builds/23089752 |
Needed to rebase to get the zstd fix. Will take this up in the morning |
cpp/CMakeLists.txt
Outdated
# * BREW: Use SYSTEM but search for select packages with brew. | ||
if(NOT "$ENV{CONDA_PREFIX}" STREQUAL "") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would actually like to keep this as the main strategy. Having conda packages and the build toolchain split is something that I would only advise to expert users since the compiler migration. With the new toolchain using system compilers, binutils, … is going to be a pain unless one is on a brand new system. I rather have CMake error out on missing conda packages than weird compilers as the binutils/compiler/ABI is not matching.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, I can write -DARROW_DEPENDENCY_SOURCE=SYSTEM -DARROW_PACKAGE_PREFIX=$TOOLCHAIN
in the meantime
endif() | ||
|
||
message(STATUS "Using ${ARROW_ACTUAL_DEPENDENCY_SOURCE} approach to find dependencies") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moving this message here, we should also add a messge when the CONDA_PREFIX
was applied.
@xhochy done. I updated the PR title and JIRA to make this essentially a documentation issue |
BTW I'm going to do a pass today on our developer docs and will incorporate this into them |
cpp/CMakeLists.txt
Outdated
# If your system packages are in general in a non-default location, you can | ||
# set a general default for the *_ROOT variables using ARROW_PACKAGE_PREFIX. | ||
# * CONDA: Same as system but set all *_ROOT variables to ENV{CONDA_PREFIX}. | ||
# from the outside using the *_ROOT variables. If your system packages are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
# from the outside using the *_ROOT variables. If your system packages are | |
# using the environment by setting *_ROOT variables. If your system packages are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this right? What the documentation currently says is to do:
cmake .. -DGTest_ROOT=$GTEST_PATH
https://github.com/apache/arrow/blob/master/cpp/cmake_modules/ThirdpartyToolchain.cmake#L86
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually both are working in CMake 3.11+, before that only -DGTest_ROOT=$GTEST_PATH
works.
Looks like I have to rebase again. Is this OK to merge once the build runs? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, LGTM, merge on green
Appveyor build in my fork: https://ci.appveyor.com/project/wesm/arrow/builds/23104032. I'll merge once this makes it past the 3rd and 4th builds |
@wesm This fails to find Boost in the toolchain build :( |
Ugh, ok, having a look |
…nment variables can be used with CMake >= 3.11 Change-Id: I6658d89c5ea24f1334161764f60bf43d5b30203f
Fixed, I had accidentally undone the |
Appveyor build just started on my fork: https://ci.appveyor.com/project/wesm/arrow/builds/23109006 |
All systems go. Merging |
This clarifies the "hybrid" developer case where the library toolchain is maintained externally, but the Python bits are managed by an active conda environment.