CelestiaProject / Celestia

Real-time 3D visualization of space.
https://celestiaproject.space
GNU General Public License v2.0
1.82k stars 307 forks source link

Use Boost intrusive_ptr and static_vector #2163

Closed ajtribick closed 6 months ago

ajtribick commented 6 months ago

Replaces our custom ArrayVector and IntrusivePtr implementations with the equivalents from Boost: these are better known and have the advantage of being tested outside Celestia's codebase.

375gnu commented 6 months ago

I always hated this monstrous library due to its size. Will it be linked into a resulting binary?

ajtribick commented 6 months ago

Right, so Boost::boost is the header-only component (later versions of CMake provide the alias Boost::headers which makes this clearer, but we can't use that with our minimum version).

Building on Windows, I get identical filesizes of celestia.dll and celestia-win.exe before and after the change, and (as expected for a header-only library) no additional boost dll in the output folder.