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

Unified CMake Build #1752

Merged
merged 2 commits into from
Jul 5, 2023
Merged

Unified CMake Build #1752

merged 2 commits into from
Jul 5, 2023

Conversation

benjaminwinger
Copy link
Collaborator

Addresses an issue mentioned in #1736 and also #1745 by running the apache arrow cmake build during the configure step of the kuzu cmake build.

This might be a little unexpected since you don't usually expect a large and slow compilation step when running the configure step, but USE_SYSTEM_ARROW and ARROW_INSTALL can still be used to avoid building arrow by pointing it at a pre-built version.

I simplified the makefile accordingly, but didn't entirely remove it. There are some situations where it is still helpful to provide default settings, particularly in the case of Windows MSVC builds where (last I checked) the default Visual Studio generator produces build errors. The makefile targets are also being used for CI, though they could be inlined into the CI files.

Note that while this removes the distinction between make clean and make clean-all, you can still clean without removing arrow by running make clean inside the build directory, i.e. on the cmake generated makefile, when using the makefile generator (not quite the same as removing all the files, but it's close enough for most purposes I think).

I also took the liberty of setting GIT_SHALLOW on the arrow ExternalProject (cuts the download size from >100MB to ~20MB), and since it requires a named tag, also updated that to 12.0.1, which seems to work fine.

@benjaminwinger benjaminwinger force-pushed the unified-cmake branch 2 times, most recently from 61043a6 to 1b48070 Compare July 4, 2023 21:18
Copy link
Contributor

@ray6080 ray6080 left a comment

Choose a reason for hiding this comment

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

LGTM

@LowLevelMahn
Copy link

LowLevelMahn commented Jul 5, 2023

There are some situations where it is still helpful to provide default settings

isn't that also possible with CMake only - defaults but overwriteable?

something like:

https://cmake.org/cmake/help/latest/command/set.html

set(BUILD_PARAMETERXYZ false CACHE BOOL "Use to activate XYZ feature")

It is possible for the cache entry to exist prior to the call but have no type set if it was created on the cmake(1) command line by a user through the -D= option without specifying a type. In this case the set command will add the type. Furthermore, if the is PATH or FILEPATH and the provided on the command line is a relative path, then the set command will treat the path as relative to the current working directory and convert it to an absolute path.

so this way BUILD_PARAMETERXYZ is set to false per default but can be overwritten by -D parameter or CMake-UI

@benjaminwinger
Copy link
Collaborator Author

isn't that also possible with CMake only - defaults but overwriteable?

Not for the generator as far as I can tell, but presumably everything else should be.

@codecov
Copy link

codecov bot commented Jul 5, 2023

Codecov Report

Patch coverage has no change and project coverage change: +0.01 🎉

Comparison is base (7ff1fe5) 91.15% compared to head (d7e541d) 91.16%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1752      +/-   ##
==========================================
+ Coverage   91.15%   91.16%   +0.01%     
==========================================
  Files         769      769              
  Lines       28089    28089              
==========================================
+ Hits        25604    25608       +4     
+ Misses       2485     2481       -4     

see 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@benjaminwinger benjaminwinger merged commit fb9e78e into master Jul 5, 2023
9 checks passed
@benjaminwinger benjaminwinger deleted the unified-cmake branch July 5, 2023 16:45
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.

None yet

3 participants