-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Description
Instead of the current approach we are taking with the *_HOME variables, we should use more CMake features and also give users of Arrow a more high-level control. This is going to be a rather lengthy issue with a lot of subtasks.
- Let the user decide on the top-level how dependencies should be handled. At the moment I can think of the following modes:
- AUTO: Guess the packaging system we're running in, use this where possible, otherwise build the dependencies through the
ExternalProjectlogic. - BUNDLED: Don't use any dependencies, build them all through
ExternalProject - SYSTEM: Use CMake's
find_packageandfind_librarywithout any custom paths. If packages are on non-default locations, let the user indicate it from the outside using the*_ROOTvariables. - CONDA: Same as SYSTEM but set all
*_ROOTvariables toENV\{CONDA_PREFIX\}. - BREW: This uses SYSTEM but asks
brewfor some dependencies for their installation prefix.
- AUTO: Guess the packaging system we're running in, use this where possible, otherwise build the dependencies through the
- prefer dynamic linkage where possible
- Use
pkg-configand*Targets.cmakefiles in projects that publish these - Ensure that the necessary integration tests are in place (Fedora, Debian, Ubuntu, Alpine)
- Integration tests that Arrow's
*Targets.cmakeandarrow.pcwork.
Reporter: Uwe Korn / @xhochy
Assignee: Uwe Korn / @xhochy
Related issues:
- [C++] cmake script assumes that double-conversion installs static libs (is a parent of)
- [C++] Use the CMake's standard find features (is a parent of)
- [C++/CI] Activate flight build in ci/docker_build_cpp.sh (is a parent of)
- [CI] Add gandiva to the docker-compose setup (contains)
PRs and other links:
Note: This issue was originally created as ARROW-4611. Please see the migration documentation for further details.