Я хочу сгенерировать RPM-файл, а затем продвинуть версию, используя машину сборки.
Что я хочу сделать, это запустить cpack -R "100.0.4d"
или аналогичный способ
В ответ получить rpm-файл:myapp-100.0.4d.rpm
.
Для поддержки автоматической генерации версий для этого я построил следующее CMakeLists.txt
:
PROJECT (myapp)
SET (APPLICATION_NAME "MYAPP")
SET (APPLICATION_CODENAME "${PROJECT_NAME}")
SET (APPLICATION_COPYRIGHT_YEARS "2018")
SET (APPLICATION_VERSION_MAJOR "100")
SET (APPLICATION_VERSION_MINOR "0")
SET (APPLICATION_VERSION_PATCH "1")
SET (APPLICATION_VERSION_TYPE DS1)
SET (APPLICATION_VERSION_STRING "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}-${APPLICATION_VERSION_TYPE}")
...
#
# CPack Generic
#
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
SET(CPACK_PACKAGE_VERSION_MINOR "1")
SET(CPACK_PACKAGE_VERSION_PATCH "1")
SET(CPACK_PACKAGE_NAME "myapp")
SET(CPACK_PACKAGE_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "my app servers")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
SET(CPACK_PACKAGE_VENDOR "${APPLICATION_VENDOR_NAME}")
SET(CPACK_PACKAGE_URL "${APPLICATION_VENDOR_URL}")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md")
SET(CPACK_SOURCE_GENERATOR "RPM")
SET(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
SET(CPACK_RPM_COMPRESSION_TYPE "gzip")
SET(CPACK_GENERATOR "RPM")
Использование cpack -R
только устанавливает версию пакета rpm, но не устанавливаетизмените имя файла.
Я пытался использовать cpack -D
, чтобы изменить CPACK_PACKAGE_VERSION_*
, APPLICATION_VERSION_*
без изменений.
Как этого достичь?