Упаковка Cmake / Cpack Debian - правильное название упаковки - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь собрать пакет Debian с правильным именем, используя Cpack. У меня есть следующее в моем CMakeLists.txt:

set(CPACK_PACKAGE_NAME "something")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")

но я получаю файл с именем:

 something-0.9.0-Linux.deb

Вместо:

something-0.9.0_amd64.deb

Я просмотрел различные страницы документации, но не нашел ответа.

1 Ответ

0 голосов
/ 26 мая 2018

Cpack не имеет CPACK_DEBIAN_PACKAGE_FILE_NAME, возможно, об этом следует сообщать как об ошибке: не все системы GNU / Linux-BSD имеют одинаковое соглашение об именах пакетов.

На данный момент вы можете установить CPACK_PACKAGE_FILE_NAME, который по умолчанию установлен на:

${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}.

Перейдите по ссылке, чтобы прочитать полную страницу документации.

CPACK_DEBIAN_PACKAGE_ARCHITECTURE

Архитектура пакета Debian

Mandatory : YES
Default : Output of `dpkg --print-architecture` (or 'i386' if dpkg is not found)

Вы можете установить имя файла как:

set(CPACK_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.")

Кстати, нет необходимости переопределять значения по умолчанию, если они хороши.

  • CPACK_DEBIAN_PACKAGE_ARCHITECTURE по умолчанию dpkg --print-architecture
  • CPACK_DEBIAN_PACKAGE_VERSION по умолчанию CPACK_PACKAGE_VERSION, который сам по себе собирается из major.minor.patch.
...