forked from OSchip/llvm-project
54 lines
2.2 KiB
CMake
54 lines
2.2 KiB
CMake
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()
|