【问题标题】:CPACK : How to use CPACK_RPM_ADDITIONAL_MAN_DIRS varaible in Packing Man Files using CPACK?CPACK:如何在使用 CPACK 打包人文件中使用 CPACK RPM ADDITIONAL MAN_DIRS 变量?
【发布时间】:2020-10-15 17:03:03
【问题描述】:

CMake/CPACK 提供了一种使用 CPACK_RPM_ADDITIONAL_MAN_DIRS 变量打包 Man 文件的方法,但文档对开发人员不太友好。请帮助我提供一个示例 sn-p 我们如何使用此变量进行打包人文件? 目前我正在使用 add_custom_commandadd_custom_targetinstall 命令打包 Man 文件。如果非常感谢使用 CPACK_RPM_ADDITIONAL_MAN_DIRS 变量对 sn-p 的任何帮助,那就太好了。提前致谢!

set (man_dir ${CMAKE_SOURCE_DIR}/doc/)
set (man_dir_dst ${CMAKE_BINARY_DIR}/doc/)

ADD_CUSTOM_COMMAND(
    OUTPUT
            ${man_dir}/man.8.gz
    COMMAND gzip -c ${man_dir}/man.1m > ${man_dir}/man.8.gz
)

ADD_CUSTOM_TARGET(
    BuildManDoc ALL
    DEPENDS
            ${man_dir}/man.8.gz
)

install(
    FILES
            ${man_dir}/man.8.gz
    DESTINATION ${man_dir_dst}
    COMPONENT bin
)

【问题讨论】:

  • 感谢您的提问!您能否展示一下您当前如何打包 man 文件的代码?另外,请展示您到目前为止所做的尝试。您的尝试是否有任何错误或意外行为?
  • squareskittles 感谢您的回复。我已尝试将 CPACK_RPM_ADDITIONAL_MAN_DIRS 设置为 "${CMAKE_SOURCE_DIR}/doc/*",但我没有收到任何错误,但工作尚未完成。

标签: cmake cpack


【解决方案1】:

CPACK_RPM_ADDITIONAL_MAN_DIRS 的 CMake documentation 声明如下:

请注意,为了压缩手册页,brp-compress RPM 脚本中还必须存在路径

所以听起来您必须手动将路径 ${CMAKE_SOURCE_DIR}/doc/* 添加到 /usr/lib/rpm/brp-compress 脚本中的路径列表中。脚本中需要修改的 sn-p 复制如下:

# Add the path to this list of directories (bolded below).
for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
    ./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
    ./usr/kerberos/man ./usr/X11R6/man/man* ./usr/lib/perl5/man/man* \
    ./usr/share/doc/*/man/man* ./usr/lib/*/man/man* \
    ./path/to/your/cmake/proj/doc/*
do
...

在 RHEL 机器上,要修改的脚本位于此处:

/usr/lib/rpm/brp-compress

但它可能位于不同操作系统的其他位置。

【讨论】:

  • 我已经尝试更新它,但我不确定它是如何工作的。因为我在设置 brp-compress 中的路径后也没有看到任何更改。让我解释一下到目前为止我尝试过的内容.. 1) 我已经评论了我现有的工作代码并设置 (CPACK_RPM_ADDITIONAL_MAN_DIRS ${CMAKE_SOURCE_DIR}/doc/*) 2) 后来我尝试在 brp-compress 脚本中添加路径并尝试建造。 3)我修改了路径以匹配精确的 Man 文件,Man Dir 而不是传递正则表达式。我在 CMaklists.txt 和 brp-compress 脚本中所做的这些更改。
猜你喜欢
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2021-08-07
相关资源
最近更新 更多