rerun-io / rerun

Visualize streams of multimodal data. Free, fast, easy to use, and simple to integrate. Built in Rust.
https://rerun.io/
Apache License 2.0
6.61k stars 334 forks source link

third_party headers shall be excluded from rerun_cpp_sdk #5133

Open rgolovanov opened 9 months ago

rgolovanov commented 9 months ago

Describe the bug The headers contains third_party folder with cxxopt.hpp which shan't be a part the SDK as it is external dependency and apparently isn't even needed in SDK. Could be added. If really needed, it could be added via CMake similarly to Arrow.

To Reproduce Steps to reproduce the behavior: Just check: https://github.com/rerun-io/rerun/tree/main/rerun_cpp/src/rerun/third_party

Expected behavior No third_party folder

Rerun version 0.12.1

Wumpf commented 9 months ago

We added this one directly since it was a bit more convenient than grabbing it via cmake. Going forward we want to use it in more and more examples & demos and provide an opt-in cli utility as we already have in Python and Rust.

Is there any particular issue you have with this header-only library in the distribution zip?

rgolovanov commented 9 months ago

Mainly, it makes difficult license and copyright management. It just messes up the things when 3rdparty libraries (even header only) are distributed along with your own library. Rerun is distributed with Apache-2.0 and MIT licenses but cxxopt is redistributed as part of your library and has MIT license. Thus, if one uses Rerun with Apache-2.0 then need to keep in mind that it also contains piece of code with MIT license.

rgolovanov commented 9 months ago

btw, local workaround for us would be just to drop third_party folder at our side.