Use of VTK_USE_64BIT_IDS by the wrapper tools
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
Currently the wrapper tools use "#ifdef VTK_USE_64BIT_IDS" which is problematic for two reasons:
-
it requires that the wrapper tools include "vtkConfigure.h", which means that any slight configuration change to VTK configuration triggers complete regeneration and recompilation of the wrapper code
-
it means that if VTK is cross-compiled, VTK_USE_64BIT_IDS must be set identically on the host system and the target system
Currently vtkIdType is seen as a distinct type by the built-in C++ parser used by the wrappers. This is unnecessary, since vtkCommonCoreHierarchy.txt actually has an entry for the vtkIdType typedef:
vtkIdType = long long ; vtkType.h ; vtkCommonCore
If we simply remove all references to vtkIdType from the C++ parser, and let it fall back to the typedef, it will automatically generate wrapper code for the correct type. In other words, all references to vtkIdType in the wrappers are legacy and should be removed.
Regarding vtkConfigure.h, in addition to being included directly, it is also included indirectly by vtkParseExtras.c (#include "vtkType.h") as required by vtkParse_BasicTypeFromString(). So this usage would also have to be eliminated to make the wrapper tools independent from vtkConfigure.h.
If the wrapper tools no longer have to include vtkConfigure.h, this will de-couple the host configuration from the target configuration for cross-compilation.