docs: Direct documentation build
- Stop prebuilding conf.py and passing environmental info there
- Simplify CMake script for Shpinx doc generation
- Enable true incremental build for *.rst files
Signed-off-by: Anton Komlev <anton.komlev@arm.com>
Change-Id: I0c49043cda43dca263f530dde13052bcf9f49046
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 69f129c..02ee72f 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -27,9 +27,10 @@
project("Trusted Firmware M. Documentation" VERSION ${TFM_VERSION} LANGUAGES)
+set(SPHINXCFG_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+set(SPHINXCFG_CONFIG_PATH ${CMAKE_CURRENT_SOURCE_DIR})
set(SPHINXCFG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/user_guide)
-set(SPHINX_TMP_DOC_DIR ${CMAKE_CURRENT_BINARY_DIR}/temp)
-set(SPHINXCFG_TEMPLATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in")
+
set(DOXYCFG_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/reference_manual)
set(DOXYCFG_DOXYGEN_CFG_DIR ${CMAKE_SOURCE_DIR}/doxygen)
@@ -37,36 +38,17 @@
set(DOXYCFG_DOXYGEN_BUILD False)
################################## SPHINX ######################################
-set(SPHINXCFG_COPY_FILES True)
-set(SPHINXCFG_RENDER_CONF True)
-
-add_custom_target(tfm_docs_sphinx_cfg
- DEPENDS ${SPHINX_TMP_DOC_DIR}/conf.py
-)
-add_custom_command(OUTPUT ${SPHINX_TMP_DOC_DIR}/conf.py
- COMMAND ${CMAKE_COMMAND} -E make_directory ${SPHINX_TMP_DOC_DIR}
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/conf.py ${SPHINX_TMP_DOC_DIR}/conf.py
- MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/conf.py
- BYPRODUCTS ${SPHINX_TMP_DOC_DIR}
-)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tfm_env.py.in ${SPHINX_TMP_DOC_DIR}/tfm_env.py @ONLY)
if (SPHINX_FOUND AND PLANTUML_FOUND AND PY_M2R2_FOUND AND PY_SPHINX-RTD-THEME_FOUND AND PY_SPHINXCONTRIB.PLANTUML)
- file(GLOB_RECURSE SPHINXCFG_DOC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.rst)
+ file(GLOB_RECURSE SPHINXCFG_DOC_FILES ${SPHINXCFG_SOURCE_PATH}/*.rst)
- add_custom_command(OUTPUT "${SPHINXCFG_OUTPUT_PATH}/html/index.html"
- OUTPUT "${SPHINXCFG_OUTPUT_PATH}/html/"
- COMMAND "${SPHINX_EXECUTABLE}" -W -b html "${SPHINX_TMP_DOC_DIR}" "${SPHINXCFG_OUTPUT_PATH}/html"
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
- DEPENDS tfm_docs_sphinx_cfg
+ add_custom_target(tfm_docs_userguide_html ALL
+ COMMAND "${SPHINX_EXECUTABLE}" -W -b html -j auto -c ${SPHINXCFG_CONFIG_PATH} ${SPHINXCFG_SOURCE_PATH} "${SPHINXCFG_OUTPUT_PATH}/html"
+ WORKING_DIRECTORY ${SPHINXCFG_SOURCE_PATH}
DEPENDS ${SPHINXCFG_DOC_FILES}
)
- add_custom_target(tfm_docs_userguide_html ALL
- DEPENDS "${SPHINXCFG_OUTPUT_PATH}/html/index.html"
- DEPENDS "${SPHINXCFG_OUTPUT_PATH}/html/"
- )
+
add_dependencies(docs tfm_docs_userguide_html)
if (LATEX_PDFLATEX_FOUND)
@@ -92,10 +74,9 @@
################################## DOXYGEN #####################################
-configure_file(${CMAKE_SOURCE_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
-
if (DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND AND PLANTUML_FOUND)
+ configure_file(${CMAKE_SOURCE_DIR}/doxygen/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
file(GLOB_RECURSE DOXYCFG_DOC_FILES ${CMAKE_SOURCE_DIR}/*.c ${CMAKE_SOURCE_DIR}/*.h)
add_custom_command(OUTPUT ${DOXYCFG_OUTPUT_PATH}/html