On 12/15/2016 01:57 PM, Kim Walisch wrote: > Lets suppose I do not want to stick to my previous libtool versioning > but instead version my library according to cmake best practices. How > should I set VERSION and SOVERSION given my API version is 3.5 and my > old ABI version 4:7:0. By browsing a few CMakeLists.txt on GitHub of > other projects it seems to me that most of these projects set VERSION > to the project/API version (e.g. 3.5) and the SOVERSION to the > project/API major version (e.g 3).
The VERSION is only for human reference and so can be the project version or anything else. The SOVERSION is what provides the API version level. A binary linked to your library will at runtime look for "libfoo.so.$soversion", and any file the dynamic loader can find with that name is considered acceptable. Therefore the SOVERSION should be used for API versioning. If you remove an API then the soversion should be changed. The project version and API version don't have to be related, but it is a common convention depending on API stability. -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers