Skip to content
Snippets Groups Projects
Select Git revision
  • 4c60c81f3609fb7319965962eb38b853779d6062
  • develop default protected
  • feature/kinetic-schemes
  • feature/reconstruction
  • feature/local-dt-fsi
  • feature/composite-scheme-sources
  • feature/composite-scheme-other-fluxes
  • feature/serraille
  • feature/variational-hydro
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • master protected
  • feature/escobar-smoother
  • feature/hypoelasticity-clean
  • feature/hypoelasticity
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

PugsDoc.cmake

Blame
  • PugsDoc.cmake 4.30 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)
    
    # check for pygmentize
    find_program(PYGMENTIZE pygmentize)
    
    # check for gnuplot
    find_package(Gnuplot)
    
    add_custom_target(userdoc)
    add_custom_target(doc DEPENDS userdoc)
    
    if (EMACS AND GNUPLOT_FOUND)
    
      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_PDFLATEX_FOUND AND PYGMENTIZE)
    
        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)
    
      else()
        if (NOT LATEX_PDFLATEX_FOUND)
          add_custom_target(userdoc-missing-latex
    	COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --no-newline "Cannot build pdf documentation: "
    	COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "pdflatex missing")
          add_dependencies(userdoc userdoc-missing-latex)
        endif()
    
        if (NOT PIGMENTIZE_FOUND)
          add_custom_target(userdoc-missing-pygmentize
    	COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --no-newline "Cannot build pdf documentation: "
    	COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "pygmentize missing")
          add_dependencies(userdoc userdoc-missing-pygmentize)
        endif()
    
      endif()
    
    else()
      if (NOT EMACS)
        add_custom_target(userdoc-missing-emacs
          COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --no-newline "Cannot build documentation: "
          COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "emacs missing")
        add_dependencies(userdoc userdoc-missing-emacs)
      endif()
    
      if (NOT GNUPLOT_FOUND)
        add_custom_target(userdoc-missing-gnuplot
          COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --no-newline "Cannot build documentation: "
          COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red --bold "gnuplot missing")
        add_dependencies(userdoc userdoc-missing-gnuplot)
      endif()
    endif()
    
    add_dependencies(doc userdoc)