У меня есть довольно новый проект на github, который производит общую библиотеку.В дальнейшем я хотел бы использовать семантическое управление версиями (как описано в semver.org ) для номеров основных / вспомогательных / разделяемых библиотек в имени файла.В проекте используется CMake.Файл CMakeLists.txt ссылается на CPACK_PACKAGE_VERSION_MAJOR, CPACK_PACKAGE_VERSION_MINOR и CPACK_PACKAGE_VERSION_PATCH и устанавливает для них значения по умолчанию, если они не передаются в командной строке.
Мой план состоит в том, чтобы переходить на изменения ABI и добавления API в соответствии с дополнениями API,принципы семантического управления версиями.
Я знаю, что в github есть поддержка создания и именования пакетов релизов, содержащих исходный код проекта на основе тегов git.Но я не вижу способа распространения основных, вспомогательных номеров и номеров патчей на имя общей библиотеки, когда пользователь github создает выпуск на своей машине.
Например, если у меня есть ветка с именем myproj_1_2 и тег выпуска с именем myproj_rel_1_2_9, есть ли способ, чтобы совместно используемая библиотека, созданная пользователем, имела имя libmyproj.so.1.2.9?
Это просто вопрос документирования того, что пользователь должен передать информацию об имени сборки в командной строке cmake, а файл CMakeLists.txt должен проанализировать это и установить CPACK_PACKAGE_VERSION_MAJOR, CPACK_PACKAGE_VERSION_MINOR и CPACK_PACKAGE_VERSION_PATCH соответственно, или, соответственно, илиболее элегантный способ сделать это?