include(FindDoxygen) if(DOXYGEN_FOUND) set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/..) set(DOT dot) set(PACKAGE_VERSION mainline) set(abs_top_builddir ..) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg @ONLY) add_custom_target(lldb-cpp-doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.cfg WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Generating LLDB C++ API reference with Doxygen" VERBATIM ) endif() if (LLVM_ENABLE_SPHINX) include(AddSphinxTarget) endif() if (LLDB_ENABLE_PYTHON AND SPHINX_FOUND) if (${SPHINX_OUTPUT_HTML}) # Pretend that the SWIG generated API is a Python package. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lldb) get_target_property(lldb_bindings_dir swig_wrapper_python BINARY_DIR) add_custom_target(lldb-python-doc-package COMMAND "${CMAKE_COMMAND}" -E copy "${lldb_bindings_dir}/lldb.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/__init__.py" COMMENT "Copying lldb.py to pretend its a Python package.") add_dependencies(lldb-python-doc-package swig_wrapper_python) # FIXME: Don't treat Sphinx warnings as errors. The files generated by # automodapi are full of warnings (partly caused by SWIG, our documentation # and probably also automodapi itself), so those warnings need to be fixed # first before we can turn this on. set(SPHINX_WARNINGS_AS_ERRORS Off) # The sphinx config needs to know where the generated LLDB Python module is. # There is no way to pass a variable into our sphinx config, so just pass # the path to the module via the LLDB_SWIG_MODULE environment variable. add_sphinx_target(html lldb ENV_VARS "LLDB_SWIG_MODULE=${CMAKE_CURRENT_BINARY_DIR}") # Sphinx does not reliably update the custom CSS files, so force # a clean rebuild of the documentation every time. add_custom_target(clean-lldb-html COMMAND "${CMAKE_COMMAND}" -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/html) add_dependencies(docs-lldb-html swig_wrapper_python lldb-python-doc-package clean-lldb-html) endif() if (${SPHINX_OUTPUT_MAN}) add_sphinx_target(man lldb) endif() endif()