14

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

谢谢。

4

3 回答 3

7

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

于 2014-04-11T16:10:08.487 回答
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")
于 2021-03-06T12:22:28.990 回答
0

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

它肯定是以下的组合:

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

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

于 2011-02-23T02:51:56.347 回答