Open3D Debianization Notes
==========================

The Python module is built with a customized Pybuild setup to accomodate
multiple Python versions and for better overall integration with the Debian
build tools. The setup files for the build can be found in debian/python.

The CMake configuration script is slightly modified to export a properly
configured target ("modern CMake style") for library users.

Open3D has a lot of private dependencies which are not directly exposed in the
API but pollute the symbol export table nonetheless. Therefore, I use a linker
version script to restrict the exported symbols to the open3d:: namespace. Most
required symbols can be captured with "open3d::*" (functions and class methods)
or "*for?open3d::*" (vtables, typeinfos). Unfortunately, template
instantiations are encoded with return type, but "*open3d::*" would be
capturing too many unrelated symbols. Fortunately, there are just a handful of
those, so we can list them with "*open3d::template::function*" explicitly.

 -- Timo Röhling <timo.roehling@fkie.fraunhofer.de>  Sun, 15 Mar 2020 13:39:36 +0100
