Add new doxygen setup

This commit is contained in:
Sameer Rahmani 2022-02-12 22:25:22 +00:00
parent b210e3a349
commit 00592d6af1
5 changed files with 2671 additions and 1 deletions

View File

@ -134,6 +134,7 @@ function build-release() { ## Builds the project in "Release" mode
function build-docs() { ## Builds the documentation of Serene
clean
pip install -r $ME/docs/requirements.txt
pushed_build
cmake -G Ninja -DSERENE_ENABLE_DOCS=ON "$ROOT_DIR"
cmake --build .

11
cmake/find-sphinx.cmake Normal file
View File

@ -0,0 +1,11 @@
#Look for an executable called sphinx-build
find_program(SPHINX_EXECUTABLE
NAMES sphinx-build
DOC "Path to sphinx-build executable")
include(FindPackageHandleStandardArgs)
#Handle standard arguments to find_package like REQUIRED and QUIET
find_package_handle_standard_args(Sphinx
"Failed to find sphinx-build executable"
SPHINX_EXECUTABLE)

View File

@ -10,4 +10,42 @@ doxygen_add_docs(docs
"${PROJECT_SOURCE_DIR}/src/"
${INCLUDE_DIR})
add_dependencies(serenec docs)
find_package(Doxygen REQUIRED)
# Find all the public headers
get_target_property(SERENE_PUBLIC_HEADER_DIR SERENE INTERFACE_INCLUDE_DIRECTORIES)
file(GLOB_RECURSE SERENE_PUBLIC_HEADER_DIR ${SERENE_PUBLIC_HEADER_DIR}/*.h)
set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/)
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/docs/doxygen)
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/html/index.html)
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
# Replace variables inside @@ with the current values
configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
# Doxygen won't create this for us
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})
add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE}
DEPENDS ${SERENE_PUBLIC_HEADER_DIR}
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN}
COMMENT "Generating docs")
add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE})
add_dependencies(libserene docs)
find_package(Sphinx REQUIRED)
set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR})
set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/docs/sphinx)
add_custom_target(Sphinx ALL
COMMAND
${SPHINX_EXECUTABLE} -b html
${SPHINX_SOURCE} ${SPHINX_BUILD}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating documentation with Sphinx")

2618
docs/Doxyfile.in Normal file

File diff suppressed because it is too large Load Diff

2
docs/requirements.txt Normal file
View File

@ -0,0 +1,2 @@
sphinx_rtd_theme==1.0
breathe==4