-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Support finding installed arrow libraries from system #9992
Conversation
✅ Deploy Preview for meta-velox canceled.
|
@majetideepak, @assignUser, do you have any comment? |
@assignUser can you please help review this? Thanks! |
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.
Thanks for the contribution! I do agree that we should be able to use an existing arrow install but I think we should implement it a bit differently.
There is no real reason for arrow to be in thirdparty
it's just a remnant and everything else was moved to resolve_dependency already so I think arrow should follow.
We can then use the usual find_package/build-if-not-found approach utilizing arrowConfig.cmake instead hard coding things like you did here.
There might be a few quirks to keep in mind when using arrow with fetch content, there is an example here: https://github.com/amoeba/arrow-cmake-fetchcontent/
It's probably best to utilize the subdir approach we use for folly and boost in CMake/resolve_dependency for arrow too.
@assignUser, thanks so much for your comment. Just updated the pr with To find arrow from system, I tried to let arrowConfig.cmake be used. It was installed under system path. But target re-definition error for some third-party lib is reported. So currently I added I also tried using Please kindly let me know your suggestions. Thanks! |
Hi @assignUser, could you help review again? Thanks! |
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.
Thanks, this lookgs good! While I would like to re-work this to use FetchContent, we do share a number of dependencies and I can see that leading to trouble.
This finally aligns the existing bundled Arrow build with resolve_dependency
and additionally allows for use of system Arrow. So we should merge this for now and we can try FetchContent again later in a follow up :)
@assignUser, sounds good! Thanks so much for your review! |
@bikramSingh91 has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@bikramSingh91 merged this pull request in 0d80228. |
Conbench analyzed the 1 benchmark run on commit There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
…okincubator#9992)" This reverts commit 0d80228.
…okincubator#9992)" This reverts commit 0d80228.
Summary: facebookincubator#9992 adds `arrow` as a dependency, and this PR adds `arrow` in CMake dependency README. Pull Request resolved: facebookincubator#11054 Reviewed By: xiaoxmeng Differential Revision: D64520314 Pulled By: kgpai fbshipit-source-id: 8bb29eabe39833f45f57757ed2de65a46be3a8ab
Gluten project needs to pre-build arrow before building velox. And it's also possible that arrow
libs have already been installed, e.g., via vcpkg. Then, velox doesn't need to build arrow from
source again.