- configure_file(
- "${SPHINX_SOURCE_DIR}/conf.py.in"
- "${SPHINX_BUILD_DIR}/conf.py"
- @ONLY)
-
- add_custom_target("docs"
- ${SPHINX_EXECUTABLE}
- -q -a -b html
- -c "${SPHINX_BUILD_DIR}"
- -d "${SPHINX_CACHE_DIR}"
- ${SPHINX_OPTIONS}
- "${SPHINX_SOURCE_DIR}"
- "${SPHINX_HTML_DIR}"
- BYPRODUCTS ${SPHINX_HTML_DIR}
- COMMENT "Build HTML documentation with Sphinx")
- #list(APPEND ADDITIONAL_CLEAN_FILES ${SPHINX_CACHE_DIR} ${SPHINX_HTML_DIR})
- add_custom_target(man
- ${SPHINX_EXECUTABLE}
- -q -a -b man
- -c "${SPHINX_BUILD_DIR}"
- -d "${SPHINX_CACHE_DIR}"
- ${SPHINX_OPTIONS}
- "${SPHINX_SOURCE_DIR}"
- "${SPHINX_MAN_DIR}"
- BYPRODUCTS ${SPHINX_MAN_DIR}
- COMMENT "Build manpage documentation with Sphinx")
- #list(APPEND ADDITIONAL_CLEAN_FILES ${SPHINX_CACHE_DIR} ${SPHINX_MAN_DIR})
+ configure_file("conf.py.in" "conf.py" @ONLY)
+ add_subdirectory(source)
+
+ file(GLOB_RECURSE DOCS_SOURCE
+ CONFIGURE_DEPENDS
+ "*.rst")
+
+ if(BUILD_DOCS_HTML)
+ add_custom_command(
+ OUTPUT "${SPHINX_HTML_DIR}"
+ COMMAND
+ ${SPHINX_EXECUTABLE}
+ -q -b html
+ -c "${SPHINX_BUILD_DIR}"
+ -d "${SPHINX_CACHE_DIR}"
+ ${SPHINX_OPTIONS}
+ "${SPHINX_SOURCE_DIR}"
+ "${SPHINX_HTML_DIR}"
+ COMMAND
+ ${CMAKE_COMMAND} -E touch "${SPHINX_HTML_DIR}"
+ BYPRODUCTS ${SPHINX_HTML_DIR}
+ DEPENDS "${DOCS_SOURCE}"
+ )
+ add_custom_target(html ALL DEPENDS "${SPHINX_HTML_DIR}")
+
+ install(DIRECTORY ${SPHINX_HTML_DIR}/
+ COMPONENT doc
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}/html)
+ endif()
+
+ if(BUILD_DOCS_MAN)
+ add_custom_command(
+ OUTPUT ${SPHINX_MAN_DIR}
+ COMMAND
+ ${SPHINX_EXECUTABLE}
+ -q -b man
+ -c "${SPHINX_BUILD_DIR}"
+ -d "${SPHINX_CACHE_DIR}"
+ ${SPHINX_OPTIONS}
+ "${SPHINX_SOURCE_DIR}"
+ "${SPHINX_MAN_DIR}"
+ COMMAND
+ ${CMAKE_COMMAND} -E touch "${SPHINX_MAN_DIR}"
+ BYPRODUCTS ${SPHINX_MAN_DIR}
+ DEPENDS "${DOCS_SOURCE}"
+ )
+ add_custom_target(man ALL DEPENDS "${SPHINX_MAN_DIR}")
+
+ set(MAN_EXT "")
+ if(BUILD_DOCS_MANGZ)
+ find_program(PIGZ pigz)
+ if(PIGZ)
+ set(GZIP ${PIGZ})
+ else()
+ find_package(UnixCommands)
+ endif()
+ if(GZIP)
+ set(MAN_EXT ".gz")
+ add_custom_target(man_gz ALL
+ COMMAND ${GZIP} -kf
+ ${SPHINX_MAN_DIR}/*.1
+ ${SPHINX_MAN_DIR}/*.3
+ DEPENDS ${SPHINX_MAN_DIR}
+ ) # some shells do not support braced glob patterns
+ endif()
+ endif()
+
+ install(DIRECTORY ${SPHINX_MAN_DIR}/
+ COMPONENT doc
+ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
+ FILES_MATCHING PATTERN *.1${MAN_EXT}
+ )
+ install(DIRECTORY ${SPHINX_MAN_DIR}/
+ COMPONENT doc
+ DESTINATION ${CMAKE_INSTALL_MANDIR}/man3
+ FILES_MATCHING PATTERN *.3${MAN_EXT}
+ )
+ endif()
+