From a47aaebb83019f877562771c905eed6faf9ddf55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Je=CC=81re=CC=81mie=20Dumas?= Date: Mon, 2 Nov 2026 14:01:39 -0800 Subject: [PATCH] Add opt-in standalone Doxygen XML documentation target --- docs/cpp/CMakeLists.txt | 20 ++++++++++++++++++++ docs/cpp/Doxyfile.xml.in | 12 ++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 docs/cpp/Doxyfile.xml.in diff --git a/docs/cpp/CMakeLists.txt b/docs/cpp/CMakeLists.txt index 328744b7..086c37a8 100644 --- a/docs/cpp/CMakeLists.txt +++ b/docs/cpp/CMakeLists.txt @@ -77,3 +77,23 @@ add_custom_target(doc COMMENT "Generating docs") add_dependencies(doc doxygen-awesome) + +option(LAGRANGE_DOCS_XML "Enable the standalone Doxygen XML target" OFF) +if(LAGRANGE_DOCS_XML) + set(DOXYGEN_OUTPUT_XML xml CACHE STRING "Output subdir for doxygen XML") + set(DOXYGEN_XML_PROGRAMLISTING NO CACHE STRING "Include source listings in doxygen XML (YES or NO)") + get_filename_component(DOXYGEN_XML_SOURCE_ROOT "${DOXYGEN_WORKING_DIR}" ABSOLUTE) + + # Reuse the HTML extraction settings without depending on its theme/download. + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.xml.in" + "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.xml" + @ONLY + ) + add_custom_target(doc-xml + COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.xml" + WORKING_DIRECTORY "${DOXYGEN_WORKING_DIR}" + COMMENT "Generating Doxygen XML" + VERBATIM + ) +endif() diff --git a/docs/cpp/Doxyfile.xml.in b/docs/cpp/Doxyfile.xml.in new file mode 100644 index 00000000..1564808b --- /dev/null +++ b/docs/cpp/Doxyfile.xml.in @@ -0,0 +1,12 @@ +# Reuse the complete module/source configuration, including module Markdown. +@INCLUDE = "@DOXYFILE_OUT@" +# Keep exported source locations independent of the build machine. +STRIP_FROM_PATH += "@DOXYGEN_XML_SOURCE_ROOT@" +STRIP_FROM_INC_PATH += "@DOXYGEN_XML_SOURCE_ROOT@" +GENERATE_HTML = NO +GENERATE_LATEX = NO +GENERATE_RTF = NO +GENERATE_MAN = NO +GENERATE_XML = YES +XML_OUTPUT = "@DOXYGEN_OUTPUT_XML@" +XML_PROGRAMLISTING = @DOXYGEN_XML_PROGRAMLISTING@