我正在尝试使用Cpack构建一个正确命名的Debian包。我的CMakeLists.txt中有以下内容:
EXISTS
但我得到的文件名为:
WHERE
而不是:
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}")
我查看了各种文档页面,但没有找到答案。
答案 0 :(得分:2)
Cpack没有CPACK_DEBIAN_PACKAGE_FILE_NAME
,可能这应该报告为bug所有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构建的。 答案 1 :(得分:0)
更新cmake> = 3.6 :使用
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
请注意,此处必须明确设置默认值。 引用docs:
此变量的首选设置为DEB-DEFAULT,但是为了与3.6版之前的CMake中的CPackDeb向后兼容,默认情况下禁用此功能。