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

[Dev] Refactor custom cmake functions into proper modules #26764

Open
assignUser opened this issue Jan 10, 2023 · 4 comments
Open

[Dev] Refactor custom cmake functions into proper modules #26764

assignUser opened this issue Jan 10, 2023 · 4 comments

Comments

@assignUser
Copy link
Member

Describe the enhancement requested

Arrow has some great custom cmake functionality (e.g. helper functions for option handling and pretty printing, build utils...) and it seems that adbc and nanoarrow are already copying some of that into their own repos.

I think it would make sense to refactor the functions into proper modules (maybe into an arrow-cmake repo?) ideally with testing (as much as that is possible with cmake...). That way other arrow subprojects and other projects in general could use these functions in a clean way via submodules or even FetchContent.

What do you think @kou @raulcd

Component(s)

Developer Tools

@lidavidm
Copy link
Member

I do plan to get around to redoing the CMake code for adbc in the future...but if we're going to refactor then we may as well keep a common config

@kou
Copy link
Member

kou commented Jan 11, 2023

I want to do it but I want to keep using apache/arrow repository. If we use separated repository for CMake, it will annoy apache/arrow developers.

BTW, I think that most of apache/arrow's custom CMake functionality can be simplified with recent CMake. I think that we should do it as the first step. (I'm working on this incrementally.) Some features may not need to use custom CMake functionality with recent CMake because recent CMake may provide the same functionality as built-in functionality.

I'm working on CMake codes in cpp/ and python/ recently. I can work on apache/arrow-adbc's CMake codes after them or concurrently.

It seems that apache/arrow-nanoarrow doesn't need to use apache/arrow's CMake functionality: https://github.com/apache/arrow-nanoarrow/blob/main/CMakeLists.txt
It's simple and it may not need complex CMake configuration.

@assignUser
Copy link
Member Author

Sounds good, as you mentioned in another issue, with the EOL of ubuntu 18.04 in April we can use 3.16 as a minimum version. It makes sense to work on that for 12.0.0 or probably more likely 13.0.0

I'd be happy to coordinate with you on that @kou (I have been doing a lot of cmake work for velox recently using 3.15+, e.g. building boost with fetchcontent and cmake instead of b2)

@kou
Copy link
Member

kou commented Jan 12, 2023

I'd be happy to coordinate with you on that @kou

Thanks! It's very helpful!

(I have been doing a lot of cmake work for velox recently using 3.15+, e.g. building boost with fetchcontent and cmake instead of b2)

Great! I didn't know that Boost supports CMake!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants