使用cmake生成/打包/安装手册页

93ze6v8z  于 2023-05-22  发布在  其他
关注(0)|答案(3)|浏览(166)

我正在寻找一些关于如何在使用CMake的项目中生成,打包和安装手册页的好例子/教程。
谢谢

hec6srdp

hec6srdp1#

在Linux下使用cmake 2.8.12,下面的代码对我有用:

ADD_CUSTOM_TARGET(man ALL)

ADD_CUSTOM_COMMAND(
  TARGET man
  SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/myprog.pod
  COMMAND pod2man ARGS -s 1 -c "myprog manual" ${CMAKE_CURRENT_SOURCE_DIR}/myprog.pod ${CMAKE_CURRENT_BINARY_DIR}/myprog.1
  OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/myprog.1
)

ADD_CUSTOM_COMMAND(
  TARGET man
  SOURCE man
  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/myprog.1
)

INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/myprog.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1)

即使按照CMake的标准,它看起来也不优雅。我希望看到一个解决方案,少口吃。

ni65a41a

ni65a41a2#

也许你会对下面的解决方案感兴趣,它允许生成和安装手册页,用Markdown或AsciiDoc编写:
https://github.com/rnpgp/cmake-modules/
要生成和安装用Markdown编写的手册页,只需在CMakeLists.txt中添加两行即可:

include(PandocMan)
add_pandoc_man("${CMAKE_CURRENT_SOURCE_DIR}/utility.1.md")

与AsciiDoc和AsciiDoctor相同:

include(AdocMan)
add_adoc_man("${CMAKE_CURRENT_SOURCE_DIR}/utility.1.adoc")
kognpnkq

kognpnkq3#

您可以深入研究CMake本身的源代码树,了解它如何安装自己的手册页。
它肯定是以下各项的组合:

  • 使用CMake的add_custom_命令
  • 调用工具以在这些自定义命令中生成/生成文档
  • 将结果安装在正确的位置

有关详细信息,请参阅CMake的add_custom_command和install命令的文档:

  • http://cmake.org/cmake/help/cmake-2-8-docs.html#command:add_custom_command
  • http://cmake.org/cmake/help/cmake-2-8-docs.html#command:install

相关问题