# -------------------- Documentation ---------------- # check for Emacs since the documentation is writen in org-mode find_program(EMACS emacs) # check for LaTeX find_package(LATEX COMPONENTS PDFLATEX) add_custom_target(userdoc) add_custom_target(doc DEPENDS userdoc) if (EMACS) add_custom_command( OUTPUT "${PUGS_BINARY_DIR}/doc" COMMAND ${CMAKE_COMMAND} -E make_directory "${PUGS_BINARY_DIR}/doc" ) add_custom_target(pugsdoc-dir DEPENDS "${PUGS_BINARY_DIR}/doc") set(ORG_GENERATOR_FILES "${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el" "${PUGS_SOURCE_DIR}/doc/lisp/share/pugs.el" "${PUGS_SOURCE_DIR}/doc/lisp/share/ob-pugs.el" "${PUGS_SOURCE_DIR}/doc/lisp/share/ob-pugs-error.el" ) add_custom_command( COMMENT "Check Emacs packages for documentation building" OUTPUT "${PUGS_SOURCE_DIR}/doc/lisp/elpa" COMMAND ${CMAKE_COMMAND} -E env PUGS=${PUGS_BINARY_DIR}/pugs HOME=${PUGS_SOURCE_DIR}/doc/lisp PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR} PUGS_BINARY_DIR=${PUGS_BINARY_DIR} ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/build-doc-config.el DEPENDS ${ORG_GENERATOR_FILES} ) add_custom_target(pugsdoc-download-elpa DEPENDS "${PUGS_SOURCE_DIR}/doc/lisp/elpa") add_custom_command( OUTPUT "${PUGS_BINARY_DIR}/doc/userdoc.html" COMMAND ${CMAKE_COMMAND} -E env PUGS=${PUGS_BINARY_DIR}/pugs HOME=${PUGS_SOURCE_DIR}/doc/lisp PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR} PUGS_BINARY_DIR=${PUGS_BINARY_DIR} ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-html.el" pugs pugsdoc-dir pugsdoc-download-elpa ${ORG_GENERATOR_FILES} WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc COMMENT "Building user documentation in doc/userdoc.html" VERBATIM) add_custom_target(userdoc-html DEPENDS pugsdoc-dir "${PUGS_BINARY_DIR}/doc/userdoc.html") add_dependencies(userdoc userdoc-html) if (LATEX_FOUND) add_custom_command( OUTPUT "${PUGS_BINARY_DIR}/doc/userdoc.pdf" COMMAND ${CMAKE_COMMAND} -E env PUGS=${PUGS_BINARY_DIR}/pugs HOME=${PUGS_SOURCE_DIR}/doc/lisp PUGS_SOURCE_DIR=${PUGS_SOURCE_DIR} PUGS_BINARY_DIR=${PUGS_BINARY_DIR} ${EMACS} -Q --script ${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el DEPENDS "${PUGS_SOURCE_DIR}/doc/userdoc.org" "${PUGS_SOURCE_DIR}/doc/lisp/userdoc-pdf.el" "${PUGS_SOURCE_DIR}/tools/pgs-pygments.sh" "${PUGS_SOURCE_DIR}/tools/pgs-pygments.py" pugs pugsdoc-dir pugsdoc-download-elpa ${ORG_GENERATOR_FILES} WORKING_DIRECTORY ${PUGS_BINARY_DIR}/doc COMMENT "Building user documentation in doc/userdoc.pdf" VERBATIM) add_custom_target(userdoc-pdf DEPENDS pugsdoc-dir "${PUGS_BINARY_DIR}/doc/userdoc.pdf" ) add_dependencies(userdoc userdoc-pdf) endif() add_dependencies(doc userdoc) endif()