установить имя пакета RPM в соответствии с версией, используя CMAKE / CPack - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу сгенерировать 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_* без изменений.

Как этого достичь?

...