## Copyright(c) 2017-2020, Intel Corporation ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions are met: ## ## * Redistributions of source code must retain the above copyright notice, ## this list of conditions and the following disclaimer. ## * Redistributions in binary form must reproduce the above copyright notice, ## this list of conditions and the following disclaimer in the documentation ## and/or other materials provided with the distribution. ## * Neither the name of Intel Corporation nor the names of its contributors ## may be used to endorse or promote products derived from this software ## without specific prior written permission. ## ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ## POSSIBILITY OF SUCH DAMAGE. project(sphinx) # configured documentation tools and intermediate build results set(BINARY_BUILD_DIR "${CMAKE_BINARY_DIR}/sphinx/_build") # Sphinx cache with pickled ReST documents set(SPHINX_CACHE_DIR "${CMAKE_BINARY_DIR}/sphinx/_doctrees") # Documentation number if(HASH_ARCHIVES) set(SPHINX_DOC_RELEASE "${OPAE_VERSION}.${OPAE_GIT_COMMIT_HASH}") else() set(SPHINX_DOC_RELEASE "${OPAE_VERSION}") endif() # HTML output directory set(SPHINX_HTML_DIR "${CMAKE_BINARY_DIR}/sphinx/html/${SPHINX_DOC_RELEASE}") # MAN output directory set(SPHINX_MAN_DIR "${CMAKE_BINARY_DIR}/sphinx/man/${SPHINX_DOC_RELEASE}") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in" "${BINARY_BUILD_DIR}/conf.py" @ONLY) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/index.rst.in" "${BINARY_BUILD_DIR}/index.rst" @ONLY) add_custom_target(copy-doxygen-files ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/doc/xml ${BINARY_BUILD_DIR}/doxygen_xml DEPENDS doxygen) add_custom_target(copy-markdown-files ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/doc/src ${BINARY_BUILD_DIR}/docs) add_custom_target(copy-include-files ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/opae-libs/include ${BINARY_BUILD_DIR}/docs/fpga_api/include DEPENDS copy-markdown-files) add_custom_target(copy-sample-files ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/samples ${BINARY_BUILD_DIR}/docs/fpga_api/samples DEPENDS copy-include-files) add_custom_target(copy-python-files ALL COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/opae-libs/pyopae/README.md ${BINARY_BUILD_DIR}/docs/README.md DEPENDS copy-markdown-files) add_custom_target(docs ALL COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${LIBRARY_OUTPUT_PATH}/python${OPAE_PYTHON_VERSION}" ${SPHINX_EXECUTABLE} -q -b html -c "${BINARY_BUILD_DIR}" -d "${SPHINX_CACHE_DIR}" "${BINARY_BUILD_DIR}" "${SPHINX_HTML_DIR}" WORKING_DIRECTORY "${BINARY_BUILD_DIR}" COMMENT "Building HTML documentation with Sphinx") add_custom_target(manpages ALL COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${LIBRARY_OUTPUT_PATH}/python${OPAE_PYTHON_VERSION}" ${SPHINX_EXECUTABLE} -q -b man -c "${BINARY_BUILD_DIR}" -d "${SPHINX_CACHE_DIR}" "${BINARY_BUILD_DIR}" "${SPHINX_MAN_DIR}" WORKING_DIRECTORY "${BINARY_BUILD_DIR}" COMMENT "Building manpages with Sphinx") add_dependencies(docs copy-doxygen-files copy-markdown-files copy-include-files copy-sample-files copy-python-files doxygen _opae)