Skip to content

Make WRAP_DEPENDS from DEPENDS and PRIVATE_DEPENDS

David Gobbi requested to merge dgobbi/vtk:wrapper-depends into master

In VTK 6.1 the PRIVATE_DEPENDS section was added to the module.cmake files, in order to reduce linking. This created a problem for the wrappers that went unnoticed at the time: when a VTK interface method takes or return a pointer to a VTK object, a simple forward declaration and private linkage of the library defining that object is sufficient for C++. For the wrappers, however, it is insufficient because the wrappers require the definitions of any types that are used as method parameters, otherwise they cannot know whether a forward-declared class is derived from vtkObject or not.

For VTK 7.1 the module.cmake files were cleaned up and many dependencies were moved from DEPENDS to PRIVATE_DEPENDS. This cleanup caused the bug that was introduced in VTK 6.1 to become apparent, because suddenly a whole bunch of methods were not longer wrapped in Java because the wrappers could not reliably determine whether forward-declared types were derived from vtkObject or not. Tcl and Python continued to work because they are less strict in their type checking.

Merge request reports