Добавление информации о версии в вашу библиотеку

Итак, вы создали библиотеку с помощью CMake и хотите добавить SO VERSION в свою динамическую библиотеку.

Вы хотите добавить эти файлы:

  • libjson.ВЕРСИЯ.dylib
  • libjson.MAJOR_VERSION.dylib [символическая ссылка]
  • libjson.dylib [ссылка]

На самом деле очень легко настроить CMake для получения этих файлов, как вы получаете с помощью Autotools.

1 → Установите VERSION в project(), как показано ниже:

project(json VERSION 0.1.4 LANGUAGES C)

2 → Установите параметры set_target_properties в файле CMakeLists.txt, как показано ниже, замените json именем вашей цели/библиотеки:

set_target_properties(json PROPERTIES 
                              VERSION ${PROJECT_VERSION}
                            SOVERSION ${PROJECT_VERSION_MAJOR})

и снова запустите сборку, вот и все. Вы должны увидеть эти файлы:

Кроме того, вы можете создать пользовательские переменные и поместить их в set_target_properties, но CMake уже поддерживает переменную VERSION (возможно, не в старых версиях), и вы можете использовать ее, иначе можно было бы написать что-то вроде этого:

set(JSON_VERSION_MAJOR 0)
set(JSON_VERSION_MINOR 1)
set(JSON_VERSION_PATCH 4)
set(JSON_VERSION {JSON_VERSION_MAJOR}.${JSON_VERSION_MINOR}.${JSON_VERSION_PATCH})
set_target_properties(json PROPERTIES 
                              VERSION ${JSON_VERSION}
                            SOVERSION ${JSON_VERSION_MAJOR})