Enable testing ABI Mangling with VTK_ENABLE_KITS
The ABI Mangling test parse the contents of the compiled binaries for symbols with with non-"hidden"
visibility and verifies all of these symbols contain the ABI Namespace string.
There are a set of cases where each VTK module will list EXCEPTIONS to the ABI Namespace. In the case of VTK Kits, multiple modules will be linked into a common binary. When the ABI mangling test is run for each module in the Kit it will not know about exceptions for its module, but the kit binary may also contain exceptionable symbols from other modules in that kit.
The original solution for this was to inspect the TARGET_OBJECTS
for each module. However, on some platforms the symbol attribute visibility="hidden"
is not applied until the final library is linked. This leads to false positive results where private symbols that do not require ABI mangling are listed as errors in the test.
A possible solution to this could be to aggregate a list of module TARGET_FILES
, strip duplicates, and create an ABI mangling test for each of the aggregated files with their appropriate exceptions.
CC: @ben.boeckel @svenevs