gpt4 book ai didi

cmake - 如何使用 CMAKE 在 deb 中添加变更日志?

转载 作者:行者123 更新时间:2023-12-04 16:08:58 33 4
gpt4 key购买 nike

我正在用 CMAKE 和 CPACK 构建一个 debian 包。除了我找不到如何在 deb 包中添加更改日志文件之外,构建一切都很顺利。有什么办法吗?

最佳答案

至少从 CMake 3 开始,Debian CPack 生成器提供了变量 CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA,它是要添加到包控制部分的任意文件列表。
您可以编写/生成更改日志文件,并将其添加到此变量中:

set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/debian/changelog")
查看 CMake docs更多。
===== 编辑 =====
林田(说得很对) doesn't like上述解决方案。更新日志应该被压缩并安装在 /usr/share/doc/package-name/changelog.gz .以下代码适用于 Linux:
include(GNUInstallDirs)

add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/changelog.gz
COMMAND gzip -cn9 "${CMAKE_CURRENT_SOURCE_DIR}/changelog" "${CMAKE_CURRENT_SOURCE_DIR}/changelog.gz"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/changelog"
COMMENT "Compressing changelog"
)

add_custom_target(changelog ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/changelog.gz")

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/changelog.gz"
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
)
add_custom_command添加一个钩子(Hook)以在其依赖项 (changelog) 更改时重新生成 changelog.gz。 add_custom_target添加一个目标以在构建时生成 changelog.gz。 install将压缩的变更日志安装到正确的位置。
代码应该放在与更改日志相同的目录中的 CMakeLists.txt 文件中。不幸的是,CMake 似乎还没有跨平台的方式来压缩单个文件。

关于cmake - 如何使用 CMAKE 在 deb 中添加变更日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490448/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com