Select Git revision
PugsDoc.cmake
-
Stéphane Del Pino authoredStéphane Del Pino authored
PugsDoc.cmake 2.91 KiB
# -------------------- 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()