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

(#7329) Support Gandiva in Arrow 2.0.0 #7331

Merged
merged 2 commits into from
Jan 12, 2022

Conversation

kexianda
Copy link
Contributor

@kexianda kexianda commented Sep 18, 2021

  • fix protobuf, re2 and llvm dependencies
  • fix compile error since the llvm api changed.

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


  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@CLAassistant
Copy link

CLAassistant commented Sep 18, 2021

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@ghost
Copy link

ghost commented Sep 18, 2021

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.

@conan-center-bot

This comment has been minimized.

@ghost ghost mentioned this pull request Sep 25, 2021
4 tasks
Copy link
Contributor

@jgsogo jgsogo left a 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!

@@ -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]")
Copy link
Contributor

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.

Copy link
Contributor Author

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"

recipes/arrow/all/conanfile.py Outdated Show resolved Hide resolved
@kexianda
Copy link
Contributor Author

kexianda commented Oct 9, 2021

The comment about version ranges is important for CCI.

Thanks!

Thanks a lot. Fixed now.

@conan-center-bot

This comment has been minimized.

@ghost ghost mentioned this pull request Oct 13, 2021
4 tasks
@conan-center-bot

This comment has been minimized.

Comment on lines 466 to 467
if self._with_llvm():
self.cpp_info.components["libarrow"].requires.append("llvm::llvm")
self.cpp_info.components["libarrow"].requires.append("llvm-core::llvm-core")
Copy link
Contributor

Choose a reason for hiding this comment

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

Duplicated, right?

Copy link
Contributor Author

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.

Comment on lines 23 to 24
- get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES)
+ # get_target_property(RE2_INCLUDE_DIR RE2::re2 INTERFACE_INCLUDE_DIRECTORIES)
Copy link
Contributor

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.

Suggested change
- 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)

Copy link
Contributor Author

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()
Copy link
Contributor

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

Copy link
Contributor Author

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

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.

Comment on lines 63 to 64
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES>
+ lvm-core_INCLUDE_DIRECTORIES
Copy link
Contributor

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?

Suggested change
- $<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>

Copy link
Contributor Author

@kexianda kexianda Oct 22, 2021

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

Comment on lines 75 to 76
- $<TARGET_PROPERTY:LLVM::LLVM_INTERFACE,INTERFACE_INCLUDE_DIRECTORIES>
+ llvm-core_INCLUDE_DIRS
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- $<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>

@conan-center-bot

This comment has been minimized.

@kexianda
Copy link
Contributor Author

The comment about version ranges is important for CCI.

Thanks!

fixed

@conan-center-bot

This comment has been minimized.

@SSE4 SSE4 requested a review from uilianries October 29, 2021 05:37
uilianries
uilianries previously approved these changes Nov 1, 2021
Copy link
Member

@uilianries uilianries left a 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.
@conan-center-bot

This comment has been minimized.

@conan-center-bot
Copy link
Collaborator

All green in build 8 (8968551c1847c778c60a097b1a6bd961c102134c):

  • arrow/2.0.0@:
    All packages built successfully! (All logs)

  • arrow/1.0.0@:
    All packages built successfully! (All logs)

@prince-chrismc
Copy link
Contributor

@jgsogo your requested changes have been applied! please review when you have the chance!

@conan-center-bot conan-center-bot merged commit a4eebcf into conan-io:master Jan 12, 2022
miklelappo pushed a commit to miklelappo/conan-center-index that referenced this pull request Feb 9, 2022
* (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
datalogics-robb pushed a commit to datalogics-robb/conan-center-index that referenced this pull request Mar 6, 2023
…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
  ...
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.

8 participants