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

时间:2010-07-30 21:04:52

标签: cmake manpage

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

感谢。

3 个答案:

答案 0 :(得分:3)

在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标准,这看起来也不太优雅。我希望看到一个较少口吃的解决方案。

答案 1 :(得分:1)

也许您会对以下解决方案感兴趣,它允许生成和安装使用 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")

答案 2 :(得分:0)

您可以深入研究CMake自身的源代码树,看看它如何安装自己的手册页。

肯定是以下组合:

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

有关更多信息,请参阅CMake的add_custom_command文档并安装命令: