| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- if(SPHINX_FOUND)
- # Sphinx cache with pickled ReST documents
- set(SPHINX_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees")
- # HTML output directory
- set(SPHINX_HTML_DIR "${CMAKE_CURRENT_BINARY_DIR}/html")
- set(SPHINX_PDF_DIR "${CMAKE_CURRENT_BINARY_DIR}/latex")
- set(SPHINX_QCH_DIR "${CMAKE_CURRENT_BINARY_DIR}/qthelp")
- set(SPHINX_HTMLHELP_DIR "${CMAKE_CURRENT_BINARY_DIR}/htmlhelp")
- set(MSHTML_COMPILER wine 'C:\\Program Files\\HTML Help Workshop\\hhc.exe')
- # assets
- set(LATEX_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/logo-blue.pdf")
- set(APPLICATION_DOC_DIR "${CMAKE_INSTALL_DOCDIR}/${PACKAGE}")
- install(DIRECTORY ${SPHINX_HTML_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL)
- install(DIRECTORY ${SPHINX_PDF_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL)
- install(DIRECTORY ${SPHINX_QCH_DIR} DESTINATION ${APPLICATION_DOC_DIR} OPTIONAL)
- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/conf.py" conf.py COPYONLY)
- if(WITH_DOC)
- add_custom_target(doc ALL DEPENDS doc-html COMMENT "Building documentation...")
- else(WITH_DOC)
- add_custom_target(doc DEPENDS doc-html COMMENT "Building documentation...")
- endif(WITH_DOC)
- if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ocdoc/_shared_assets")
- add_dependencies(doc doc-html-org)
- add_dependencies(doc doc-html-com)
- endif()
- if(PDFLATEX_FOUND)
- # if this still fails on Debian/Ubuntu, run
- # apt-get install texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
- add_custom_target(doc-latex ${SPHINX_EXECUTABLE}
- -q -c . -b latex
- -d ${SPHINX_CACHE_DIR}/latex
- -D latex_logo=${LATEX_LOGO}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_PDF_DIR} )
- set(MAKE "make" CACHE FILEPATH "make to be used for documentation generation if not using make as generator anyway")
- if(CMAKE_GENERATOR MATCHES "Makefiles")
- set(MAKE "$(MAKE)")
- endif()
- add_custom_target(doc-pdf ${MAKE} -C ${SPHINX_PDF_DIR} all-pdf
- DEPENDS doc-latex )
- add_dependencies(doc doc-pdf)
- endif(PDFLATEX_FOUND)
- if (EXISTS ${QT_QCOLLECTIONGENERATOR_EXECUTABLE})
- add_custom_target( doc-qch-sphinx ${SPHINX_EXECUTABLE}
- -q -c . -b qthelp
- -d ${SPHINX_CACHE_DIR}/qthelp
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_QCH_DIR} )
- add_custom_target( doc-qch ${QT_QCOLLECTIONGENERATOR_EXECUTABLE}
- ${SPHINX_QCH_DIR}/*.qhcp
- DEPENDS doc-qch-sphinx )
- add_dependencies(doc doc-qch)
- endif()
- add_custom_target( doc-html ${SPHINX_EXECUTABLE}
- -q -c . -b html
- -d ${SPHINX_CACHE_DIR}/html
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_HTML_DIR}/unthemed )
- add_custom_target( doc-html-org ${SPHINX_EXECUTABLE}
- -q -c . -b html
- -d ${SPHINX_CACHE_DIR}/html
- -D html_theme=owncloud_org
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_HTML_DIR}/org )
- add_custom_target( doc-html-com ${SPHINX_EXECUTABLE}
- -q -c . -b html
- -d ${SPHINX_CACHE_DIR}/html
- -D html_theme=owncloud_com
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_HTML_DIR}/com )
- ## Building CHM files requires HTML Help Workshop. Since it requires wine
- ## with special dependencies, it's impossible to write a cmake check for it.
- ## This is why doc-chm is not a dependency for doc. Instead, run
- ## doc/scripts/htmlhelp.exe to install them and run this target
- ## explicitly.
- add_custom_target( doc-chm-sphinx ${SPHINX_EXECUTABLE}
- -q -c . -b htmlhelp
- -D html_theme=basic
- -d ${SPHINX_CACHE_DIR}/htmlhelp
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${SPHINX_HTMLHELP_DIR} )
- add_custom_target( doc-chm pushd ${SPHINX_HTMLHELP_DIR}; ${MSHTML_COMPILER} *.hhp; popd
- DEPENDS doc-chm-sphinx )
- endif(SPHINX_FOUND)
|