| 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 |
| ) |
| set_target_properties(lldb-cpp-doc PROPERTIES FOLDER "LLDB/Docs") |
| 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" |
| COMMAND "${CMAKE_COMMAND}" -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins" |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_process.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_platform.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/operating_system.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_thread_plan.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" |
| COMMENT "Copying lldb.py to pretend its a Python package.") |
| |
| add_dependencies(lldb-python-doc-package swig_wrapper_python lldb-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() |