[vtk-developers] VTK 5-4-0 compatibility

Steve M. Robbins steve at sumost.ca
Mon May 11 01:32:40 EDT 2009


Hi,


On Tue, Apr 28, 2009 at 10:09:52AM -0400, David Cole wrote:
> There are some API changes from VTK 5.2 to 5.4... Although there are not
> many, I would still say the current dylib compatibility settings are
> correct. The 5.4 dylibs cannot be loaded by a program built against 5.2 and
> work flawlessly.
> 
> Some VTK 5.4 API changes are explicitly listed here:
> http://www.vtk.org/Wiki/VTK_5.4_Release_Planning
> 
> And I would guess there are a handful of others that are simply not listed
> anywhere, but would take source code analysis to uncover...
> 
> The dylib properties are set by the code in VTK's CMakeLists.txt that looks
> like this:
> 
> # Append the library version information to the library target
> # properties.  A parent project may set its own properties and/or may
> # block this.
> IF(NOT VTK_NO_LIBRARY_VERSION)
>   SET(VTK_LIBRARY_PROPERTIES ${VTK_LIBRARY_PROPERTIES}
>     VERSION "${VTK_VERSION}"
>     SOVERSION "${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}"
>     )
> ENDIF(NOT VTK_NO_LIBRARY_VERSION)
> 
> The library VERSION property is the source of the dylib versions...

On unix/linux, SOVERSION is used to set ABI version.  Does
"-compatibility_version" indicate the ABI version or API version?  If
the former, then shouldn't it be set from SOVERSION rather than
VERSION?

Assuming we're talking about ABI (Application *Binary* Interface)
version rather than API, recall that there are many ways to break
binary compatibility even when API compatibility is maintained;
e.g. add an instance variable to a class.  It's tough to audit for
such changes, hence the conservative settings in CMakeLists.

Regards,
-Steve

> HTH,
> David
> 
> 
> On Mon, Apr 27, 2009 at 6:46 PM, Darren Weber
> <darren.weber.lists at gmail.com>wrote:
> 
> >
> > When building dynamic libs for VTK-5-4-0 on OSX, the library compatibility
> > options are set as:
> >
> > -compatibility_version 5.4.0 -current_version 5.4.0
> >
> > Is that right?  The current wiki page on API changes (
> > http://www.vtk.org/Wiki/VTK_FAQ#Changes_to_the_VTK_API) indicates no
> > changes from 5.2.x to 5.4.x - that may be true or we need an update to the
> > wiki.  If it is true, can we set the dylib compatibility to something like:
> >
> > -compatibility_version 5.2.1 -current_version 5.4.0
> >
> > How are these compatibility settings specified on the CMAKE command line?
> > I don't see any way to do it there - is it only possible to set them in
> > CMakeLists.txt files?  If the latter, where are they set in VTK?
> >
> > Thanks, Darren
> >
> >
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtk-developers
> >
> >
> >

> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20090511/5d521115/attachment.sig>


More information about the vtk-developers mailing list