У меня есть довольно новый проект на github, который создает общую библиотеку. В дальнейшем я хотел бы использовать семантическое управление версиями (как описано на semver.org) для основной / второстепенной общей библиотеки. / номера патчей в имени файла. В проекте используется CMake. Файл CMakeLists.txt ссылается на CPACK_PACKAGE_VERSION_MAJOR, CPACK_PACKAGE_VERSION_MINOR и CPACK_PACKAGE_VERSION_PATCH и устанавливает для них значения по умолчанию, если они не передаются в командной строке.
Я планирую перейти к изменениям ABI и добавлениям 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 соответственно, или есть более элегантный способ сделать это?