# Doxygen support for scsl. set(DISABLE_DOXYGEN OFF CACHE BOOL "Don't use Doxygen for documentation.") set(DISABLE_SCDOC OFF CACHE BOOL "Don't use scdoc to generate man pages.") add_custom_target(manpages) ### Generate man pages from markdown ### # md2man uses scdoc to produce a man page from a markdown document. if (LINUX and not DISABLE_SCDOC) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man DESTINATION share) macro(md2man source) block() set(SOURCE_MANPAGE) set(SOURCE_SECTION) string(REGEX REPLACE "^.+/([^/]+)\.md$" "\\1" SOURCE_MANPAGE ${source}) string(REGEX REPLACE "^.+/[^/]+\.([0-9])\.md$" "\\1" SOURCE_SECTION ${source}) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man/man${SOURCE_SECTION}) configure_file(${source} ${SOURCE_MANPAGE}.scdoc) add_custom_command(TARGET manpages COMMAND scdoc < ${SOURCE_MANPAGE}.scdoc > man/man${SOURCE_SECTION}/${SOURCE_MANPAGE}) endblock() endmacro() md2man(docs/lib${PROJECT_NAME}.7.md) endif () ### Build documentation with Doxygen ### if (not DISABLE_DOXYGEN) find_package(Doxygen) if (${DOXYGEN_FOUND}) # prefer scdocs for manpages. set(DOXYGEN_GENERATE_MAN NO) set(DOXYGEN_GENERATE_LATEX YES) set(DOXYGEN_EXTRACT_ALL YES) set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "docs/mainpage.md") message(STATUS "Doxygen found, building docs.") doxygen_add_docs(${PROJECT_NAME}_docs ${HEADER_FILES} ${SOURCE_FILES} USE_STAMP_FILE) add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_docs) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html ${CMAKE_CURRENT_BINARY_DIR}/latex DESTINATION share/doc/${PROJECT_NAME}/doxygen) add_dependencies(${PROJECT_NAME}_docs manpages) endif () # DOXYGEN_FOUND? endif () # DISABLE_DOXYGEN?