-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
(#7329) Support Gandiva in Arrow 2.0.0 #7331
Conversation
This comment has been minimized.
This comment has been minimized.
I detected other pull requests that are modifying arrow/all recipe: This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there. |
This comment has been minimized.
This comment has been minimized.
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.
The comment about version ranges is important for CCI.
Thanks!
recipes/arrow/all/conanfile.py
Outdated
@@ -232,7 +232,7 @@ def requirements(self): | |||
if self.options.with_json: | |||
self.requires("rapidjson/1.1.0") | |||
if self._with_llvm(): | |||
raise ConanInvalidConfiguration("CCI has no llvm recipe (yet)") | |||
self.requires("llvm-core/[>=11.1.0]") |
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.
Do not use version ranges in CCI. It might change packageID and consumers will complain about missing packages.
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 a lot. Fixed now. now it is "llvm-core/12.0.0"
Thanks a lot. Fixed now. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
recipes/arrow/all/conanfile.py
Outdated
if self._with_llvm(): | ||
self.cpp_info.components["libarrow"].requires.append("llvm::llvm") | ||
self.cpp_info.components["libarrow"].requires.append("llvm-core::llvm-core") |
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.
Duplicated, right?
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.
Duplicated, right?
yes. Thanks. Fixed.
- get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES) | ||
+ # get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES) |
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 keep existing logic, getting the include directories from the target will always work, the variable RE2_INCLUDE_DIR
might not be available depending on the generator used.
- get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES) | |
+ # get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES) | |
- get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES) | |
+ get_target_property(RE2_INCLUDE_DIR re2::re2 INTERFACE_INCLUDE_DIRECTORIES) |
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 keep existing logic, getting the include directories from the target will always work, the variable
RE2_INCLUDE_DIR
might not be available depending on the generator used.
make sense. Fixed.
+find_package(llvm-core REQUIRED) | ||
+if ( NOT ${llvm-core_VERSION} VERSION_LESS "10.0.0") | ||
+ set(GANDIVA_CXX_STANDARD 14) | ||
+endif() |
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.
This can be added to the recipe: if llvm
is >=11, then check that the compiler supports c++14 and also set GANDIVA_CXX_STANDARD=14
in the build()
method
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.
This can be added to the recipe: if
llvm
is >=11, then check that the compiler supports c++14 and also setGANDIVA_CXX_STANDARD=14
in thebuild()
method
GANDIVA_CXX_STANDARD also depends on 'CMAKE_CXX_STANDARD'.
And the original CMAKE script has handle this correctly.
So I just revert my redundant change here.
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | ||
+ lvm-core_INCLUDE_DIRECTORIES |
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.
Same here, why not keep using the targets?
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | |
+ lvm-core_INCLUDE_DIRECTORIES | |
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | |
+ $<TARGET_PROPERTY:llvm-core::llvm-core,INTERFACE_INCLUDE_DIRECTORIES> |
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.
Same here, why not keep using the targets?
'INTERFACE_INCLUDE_DIRECTORIES' is not the property of target llvm-core::llvm-core.
the target name is llvm-core::core. Fixed now
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | ||
+ llvm-core_INCLUDE_DIRS |
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.
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | |
+ llvm-core_INCLUDE_DIRS | |
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES> | |
+ $<TARGET_PROPERTY:llvm-core::llvm-core,INTERFACE_INCLUDE_DIRECTORIES> |
This comment has been minimized.
This comment has been minimized.
fixed |
This comment has been minimized.
This comment has been minimized.
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.
LGTM
* fix re2 and llvm dependencies * fix compile error since the llvm api changed.
This comment has been minimized.
This comment has been minimized.
@jgsogo your requested changes have been applied! please review when you have the chance! |
* (conan-io#7329) Support Gandiva in Arrow 2.0.0 * fix re2 and llvm dependencies * fix compile error since the llvm api changed. * minor: use generator expr
…update-from-conan-io * 'master' of github.com:conan-io/conan-center-index: (480 commits) (conan-io#8840) wslay: modernize (conan-io#8830) Deprecate diligentgraphics-spirv-tools (conan-io#8829) Deprecate diligentgraphics-spirv-headers (conan-io#8828) Deprecate diligentgraphics-vulkan-headers (conan-io#8819) nanoflann: add 1.4.2 + modernize (conan-io#8814) coin-lemon: restore .names["pkg_config"] (conan-io#8797) Let contributors know to avoid rebasing (conan-io#8809) libalsa: restore .names["pkg_config"] + add ALSA_CONFIG_DIR to runenv_info (conan-io#8807) pkgconf: restore .names["pkg_config"] (conan-io#8741) spirv-headers: fix pkg_config name + modernize (conan-io#8732) oniguruma: modernize (conan-io#8684) libtiff: modernize (conan-io#8632) cpython: Add PATH variable only if env_vars option is enabled. (conan-io#7331) (conan-io#7329) Support Gandiva in Arrow 2.0.0 (conan-io#8598) add scdoc documentation tool (conan-io#8796) backport-cpp: modernize (conan-io#8793) cpp-ipc: add version 1.2.0 (conan-io#8778) variant-lite: modernize (conan-io#8777) string-view-lite: modernize (conan-io#8775) scope-lite: modernize ...
Specify library name and version: arrow/2.0.0
In arrow 2.0.0, CCI does not support gandiva component since gandiva depends on llvm. Since CCI has llvm recipe now.
Turn on gandiva component support, and fix some compiling errors.
Tested on
MacOS / Clang 12
Debian / GCC 9.3
conan-center hook activated.