apache / arrow-nanoarrow

Helpers for Arrow C Data & Arrow C Stream interfaces
https://arrow.apache.org/nanoarrow
Apache License 2.0
151 stars 34 forks source link

Make extensions available as CMake components #407

Open vyasr opened 3 months ago

vyasr commented 3 months ago

Currently the extensions to the API are built completely separately. It would be helpful to support building them as components of the library. This would also facilitate transitioning them out of an experimental state.

paleolimbot commented 3 months ago

I agree! The pattern should be more like -DNANOARROW_WITH_IPC=ON.

WillAyd commented 3 weeks ago

I think this is closable now after https://github.com/apache/arrow-nanoarrow/pull/517

paleolimbot commented 3 weeks ago

I think the last piece is to ensure that the targets are installed (I don't think using the IPC or device components will work from an "installed" version of nanoarrow)!

WillAyd commented 3 weeks ago

I think these are already being installed?

https://github.com/apache/arrow-nanoarrow/blob/2d5769bbc30c5ea3814ffcd9e098993ea83a8ec0/CMakeLists.txt#L229

https://github.com/apache/arrow-nanoarrow/blob/2d5769bbc30c5ea3814ffcd9e098993ea83a8ec0/CMakeLists.txt#L298

paleolimbot commented 3 weeks ago

Possibly! Adding a test to the cmake build scenarios would ensure that we know for sure. If I'm remembering from the last time I went through the CMake, there are some other things that happen for each target that never made it to the device/IPC extensions.