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)