| if(DOXYGEN_FOUND) | |
| set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/..) | |
| set(DOT dot) | |
| set(PACKAGE_VERSION mainline) | |
| set(abs_top_builddir ..) | |
| llvm_configure_doxygen() | |
| 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_frame_provider.py" "${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/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_breakpoint.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_hook.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_stackframe_recognizer.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_command.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/parsed_cmd.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_string_summary.py" "${CMAKE_CURRENT_BINARY_DIR}/lldb/plugins/" | |
| COMMAND "${CMAKE_COMMAND}" -E copy "${LLDB_SOURCE_DIR}/examples/python/templates/scripted_synthetic_children.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) | |
| get_property(LLDB_ALL_DOC_JSON_FILES GLOBAL PROPERTY LLDB_DOCS_JSON_OUTPUTS) | |
| add_custom_command( | |
| OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated-settings.md" | |
| COMMAND | |
| "${Python3_EXECUTABLE}" | |
| "${LLDB_SOURCE_DIR}/scripts/gen-property-docs-from-json.py" | |
| -o | |
| "${CMAKE_CURRENT_BINARY_DIR}/generated-settings.md" | |
| -- | |
| ${LLDB_ALL_DOC_JSON_FILES} | |
| DEPENDS | |
| ${LLDB_ALL_DOC_JSON_FILES} | |
| "${LLDB_SOURCE_DIR}/scripts/gen-property-docs-from-json.py" | |
| ) | |
| add_custom_target(LLDBDocsSettingsMd DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generated-settings.md") | |
| add_custom_command( | |
| OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated-python-api-enums.md" | |
| COMMAND | |
| "${Python3_EXECUTABLE}" | |
| "${LLDB_SOURCE_DIR}/scripts/gen-python-api-enums.py" | |
| --enumerations | |
| "${LLDB_SOURCE_DIR}/include/lldb/lldb-enumerations.h" | |
| --defines | |
| "${LLDB_SOURCE_DIR}/include/lldb/lldb-defines.h" | |
| -o | |
| "${CMAKE_CURRENT_BINARY_DIR}/generated-python-api-enums.md" | |
| DEPENDS | |
| "${LLDB_SOURCE_DIR}/include/lldb/lldb-enumerations.h" | |
| "${LLDB_SOURCE_DIR}/include/lldb/lldb-defines.h" | |
| "${LLDB_SOURCE_DIR}/scripts/gen-python-api-enums.py" | |
| ) | |
| add_custom_target(LLDBDocsEnumsMd DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generated-python-api-enums.md") | |
| # 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}" | |
| "LLDB_BUILD_DIR=${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 LLDBDocsSettingsMd | |
| LLDBDocsEnumsMd) | |
| endif() | |
| if (${SPHINX_OUTPUT_MAN}) | |
| add_sphinx_target(man lldb) | |
| endif() | |
| endif() |