【问题标题】:How to disable CPACK_PACKAGE_VERSION_PATCH in CMakeLists.txt?如何在 CMakeLists.txt 中禁用 CPACK_PACKAGE_VERSION_PATCH?
【发布时间】:2013-03-29 08:07:57
【问题描述】:

我还是CMake 新手(3 天前开始学习)。在我目前的CMakeLists.txt 中,我有以下set 指令:

[...]
SET(CPACK_GENERATOR "RPM")
SET(CPACK_PACKAGE_VERSION_MAJOR "3")
SET(CPACK_PACKAGE_VERSION_MINOR "3")
SET(CPACK_PACKAGE_VERSION_PATCH "svn")
SET(CPACK_SYSTEM_NAME "0.el6.x86_64")
[...]

运行make package 后,我得到了libcxx-3.3.svn-0.el6.x86_64.rpm

但恕我直言,这是“作弊”。

根据http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Package_Naming_and_Versioning_Guidelines,理想情况下我应该能够生成libcxx-3.3-0.el6.x86_64.rpm。但这要求CPack 不显示CPACK_PACKAGE_VERSION_PATCH

然而,根据我的试验结果,这似乎并不可行。我希望能提供有关如何操作的提示。

【问题讨论】:

    标签: cmake fedora rpm rhel cpack


    【解决方案1】:

    您是否尝试将 CPACK_PACKAGE_FILE_NAME(不带扩展名)设置为所需的名称?这是提供的,以便您可以在默认值不适合您的需要时定义自己的包命名方案。有关关键 CPack 变量及其作用的更多详细信息,请参阅http://www.cmake.org/Wiki/CMake:CPackConfiguration

    【讨论】:

    • 感谢您的回复。 CPACK_PACKAGE_FILE_NAME 默认值为${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME},所以我想我要做的就是重置CPACK_PACKAGE_VERSION 吗? CPACK_PACKAGE_VERSIONCPACK_PACKAGE_VERSION_MAJORCPACK_PACKAGE_VERSION_MINORCPACK_PACKAGE_VERSION_PATCH、AFAICT 构建而成。
    • 是的。事实上,使用CPACK_PACKAGE_FILE_NAME 是唯一的方法。使用cmake 2.8.8 测试。尝试设置CPACK_PACKAGE_VERSION 似乎没有任何效果。 x-(
    • 您要么接受硬连线逻辑,要么通过操作提供的变量应用自己的逻辑。我认为这是一种合理的方法,提供该变量以允许调整包文件名。
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2011-08-29
    • 2022-07-14
    • 2010-10-14
    • 2011-10-02
    • 2021-06-23
    • 2011-10-18
    • 2018-07-19
    相关资源
    最近更新 更多