• David Gobbi's avatar
    David Gobbi authored
    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++.  But for the
    wrappers, 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.
vtkModuleMacros.cmake 36.7 KB