-
Notifications
You must be signed in to change notification settings - Fork 3.9k
ARROW-10541: [C++] Add re2 library to core arrow / ARROW_WITH_RE2 #8756
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
Conversation
|
@github-actions autotune everything |
| define_option(ARROW_WITH_UTF8PROC | ||
| "Build with support for Unicode properties using the utf8proc library" ON) | ||
| define_option(ARROW_WITH_RE2 | ||
| "Build with support for regular expressions using the re2 library" ON) |
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 find this confusing. I understand how it works--if ARROW_COMPUTE is on, these are on too unless you set them to OFF--but it looks like they're always built by default, unlike the compression libs listed above.
Maybe it's irrelevant that it looks confusing here. Or maybe at least we should add a comment here explaining how the default is really ON iff ARROW_COMPUTE is ON too. Or is it possible to define the default option here to be literally whatever ARROW_COMPUTE is, like define_option(ARROW_WITH_RE2 "..." ARROW_COMPUTE)?
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 is sadly the prettiest solution I can think of at the moment. You can define conditional options in CMake but they only make sense based on attributes that are not set by the user but the environment (e.g. which operating system).
I'll add a comment to this and the above option explaining that they are only used in certain situations.
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.
Instead of a comment could that explanation be a parenthesis of the description for this option?
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.
@bkietz Done 👍
|
Everything failing in #8759 is past the CMake additions I did here, so this should be good to go. |
|
#8459 builds on Travis, looking good 👍 |
|
|
||
| if(ARROW_GANDIVA) | ||
| set(ARROW_WITH_RE2 ON) | ||
| 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.
How about forcing to enable/disable ARROW_WITH_RE2 in ThridpartyToolchain.cmake like ARROW_WITH_THRIFT?
| "Build with support for Unicode properties using the utf8proc library" ON) | ||
| "Build with support for Unicode properties using the utf8proc library (only used if ARROW_COMPUTE is ON)" ON) | ||
| define_option(ARROW_WITH_RE2 | ||
| "Build with support for regular expressions using the re2 library (only used if ARROW_COMPUTE or ARROW_GANDIVA is ON)" ON) |
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.
We can remove ARROW_WITH_UTF8PROC and ARROW_WITH_RE2 if we set them in ThirdpartyToolchain.cmake internally like ARROW_WITH_THRIFT.
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.
No, the difference to ARROW_WITH_THRIFT is that you can still build ARROW_COMPUTE even if ARROW_WITH_UTF8PROC=OFF. In that case, only some features of compute won't be build but the majority will work.
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 understand.
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
|
@github-actions autotune |
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
Because we require RE2 with ARROW_COMPUTE by default. See also: ARROW-10541 and apache#8756
Because we require RE2 with ARROW_COMPUTE by default. See also: ARROW-10541 and #8756 Closes #8786 from kou/cpp-example-static Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Antoine Pitrou <antoine@python.org>
No description provided.