On 09/06/2012 10:09 AM, Michael Wild wrote: > On 09/06/2012 10:05 AM, Benjamin Eikel wrote: >> Am Donnerstag, 6. September 2012 um 10:01:36 schrieb Michael Wild: >>> On 09/06/2012 09:43 AM, Anton Sibilev wrote: >>>> Hi all! >>>> >>>> I'm making shared library with add_library(xxx SHARED xxx.c) and as >>>> result I got 'libxxx.so'. >>>> I want to create lib with name like 'libxxx.so.1', can you please help, >>>> how to make this? >>>> >>>> Point is not to create link or copy libxxx.so -> libxxx.so.1, but to >>>> create it initially. >>>> >>>> Thanks! >>> >>> You need to set the VERSION and SOVERSION target properties: >>> >>> http://cmake.org/cmake/help/v2.8.8/cmake.html#command:set_target_properties >> >> Right. One example: >> >> set(MYLIB_VERSION_MAJOR 0) >> set(MYLIB_VERSION_MINOR 1) >> set(MYLIB_VERSION_PATCH 1) >> set(MYLIB_VERSION_STRING >> ${MYLIB_VERSION_MAJOR}.${MYLIB_VERSION_MINOR}.${MYLIB_VERSION_PATCH}) >> >> set_target_properties(MyLib PROPERTIES VERSION ${MYLIB_VERSION_STRING} >> SOVERSION ${MYLIB_VERSION_MAJOR}) >> > > As an added remark: The SOVERSION is not necessarily the same as the > major version. The rule is that any breakage of the ABI must be > indicated by incrementing the SOVERSION. So, adding e.g. functions is no > problem, modifying argument lists or removing functions would required > the SOVERSION to be incremented. Similar rules hold of course for > non-opaque data-structures. For C++ the whole issue is infinitely more > complicated, as determining whether the ABI was changed in an > incompatible way is AFAIK nearly impossible. > > Michael >
For the interested, [1] is a very valuable resource for C++ programmers concerned about ABI compatibility. [1] http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake