Thanks for your answer.

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).

-Kim

On Thu, Dec 15, 2016 at 7:07 PM, Brad King <brad.k...@kitware.com> wrote:
> On 12/15/2016 11:54 AM, Kim Walisch wrote:
>> I am currently in the process of switching the build system of my
>> primecount project from Autotools to CMake and the shared library
>> versioning in CMake is not yet clear to myself. My current project
>> version (API version) is 3.5 and the libtool version (ABI version) is
>> 4:7:0. So I have set the VERSION and SOVERSION to my libtool
>> version (in CMakeLists.txt):
>>
>> set_target_properties(libprimecount PROPERTIES SOVERSION 4)
>> set_target_properties(libprimecount PROPERTIES VERSION "4.7.0")
>>
>> Is this correct? Or should I set the VERSION to my current project
>> version (API version):
>>
>> set_target_properties(libprimecount PROPERTIES SOVERSION 4)
>> set_target_properties(libprimecount PROPERTIES VERSION "3.5")
>
> The CMake properties give direct control over the way the files
> are constructed:
>
>     libfoo.so -> libfoo.so.$soversion
>     libfoo.so.$soversion -> libfoo.so.$version
>     libfoo.so.$version (actual file)
>
> Libtool instead defines version components [1] "current", "revision",
> and "age", and somehow maps them to the version and soversion above.
> I don't recall the mapping off the top of my head, but if you want to
> reproduce what you were doing before you should do that mapping to
> select the values for the CMake SOVERSION and VERSION properties.
>
> -Brad
>
> [1] 
> https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
>
-- 

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

Reply via email to