Author: Jameson Nash
Date: 2026-06-11T08:58:36-04:00
New Revision: 7daddf2b6f44960344157a0accb3963a7d87ca03

URL: 
https://github.com/llvm/llvm-project/commit/7daddf2b6f44960344157a0accb3963a7d87ca03
DIFF: 
https://github.com/llvm/llvm-project/commit/7daddf2b6f44960344157a0accb3963a7d87ca03.diff

LOG: [docs] try again to handle doxygen everywhere (#203081)

The previous attempt at this (b7da9565017e32c18b927a7637714d1b660b558d)
still broke standalone builds. Now I have locally tested standalone
flang, runtimes (with openmp), lldb, combined builds, and the utils
script. Hopefully that covers everything this time, and gets everything
into a more consistent state (always using the HandleDoxygen script in
the same way, included exactly once as required by the cmake design).

Added: 
    

Modified: 
    bolt/docs/CMakeLists.txt
    clang-tools-extra/docs/CMakeLists.txt
    clang/docs/CMakeLists.txt
    cmake/Modules/HandleDoxygen.cmake
    flang/CMakeLists.txt
    flang/docs/CMakeLists.txt
    lldb/CMakeLists.txt
    lldb/docs/CMakeLists.txt
    llvm/CMakeLists.txt
    llvm/docs/CMakeLists.txt
    mlir/docs/CMakeLists.txt
    openmp/docs/CMakeLists.txt
    polly/docs/CMakeLists.txt
    runtimes/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/bolt/docs/CMakeLists.txt b/bolt/docs/CMakeLists.txt
index 92c3c964acb77..45b6d6c6d707e 100644
--- a/bolt/docs/CMakeLists.txt
+++ b/bolt/docs/CMakeLists.txt
@@ -1,5 +1,3 @@
-
-find_package(Doxygen)
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
@@ -48,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(bolt_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/clang-tools-extra/docs/CMakeLists.txt 
b/clang-tools-extra/docs/CMakeLists.txt
index 1492f25a0197f..5f0ac7befeaa6 100644
--- a/clang-tools-extra/docs/CMakeLists.txt
+++ b/clang-tools-extra/docs/CMakeLists.txt
@@ -46,7 +46,6 @@ if (DOXYGEN_FOUND)
       set(clang_tools_doxygen_qhp_cust_filter_attrs "")
     endif()
 
-    include(HandleDoxygen)
     llvm_configure_doxygen()
 
     set(abs_top_srcdir)

diff  --git a/clang/docs/CMakeLists.txt b/clang/docs/CMakeLists.txt
index b0de3e74c5c7d..10992eea61c28 100644
--- a/clang/docs/CMakeLists.txt
+++ b/clang/docs/CMakeLists.txt
@@ -1,4 +1,3 @@
-
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
@@ -47,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(clang_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/cmake/Modules/HandleDoxygen.cmake 
b/cmake/Modules/HandleDoxygen.cmake
index 9a8a453102ac7..82aa4d369cca1 100644
--- a/cmake/Modules/HandleDoxygen.cmake
+++ b/cmake/Modules/HandleDoxygen.cmake
@@ -20,6 +20,11 @@ if (LLVM_ENABLE_DOXYGEN)
   llvm_find_program(dot)
   find_package(Doxygen REQUIRED)
   message(STATUS "Doxygen enabled (${DOXYGEN_VERSION}).")
+  # Create a global aggregate doxygen target for generating llvm and any/all
+  # subprojects doxygen documentation.
+  if (LLVM_BUILD_DOCS)
+    add_custom_target(doxygen ALL)
+  endif()
 
   if (DOXYGEN_FOUND)
     option(LLVM_DOXYGEN_EXTERNAL_SEARCH "Enable doxygen external search." OFF)

diff  --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt
index a137b4acf239e..6d03080d71029 100644
--- a/flang/CMakeLists.txt
+++ b/flang/CMakeLists.txt
@@ -241,9 +241,6 @@ if (FLANG_STANDALONE_BUILD)
   else()
     add_custom_target(check-all DEPENDS check-flang )
   endif()
-  if (LLVM_BUILD_DOCS)
-    add_custom_target(doxygen-flang ALL)
-  endif()
 
 else()
   option(FLANG_INCLUDE_TESTS
@@ -305,6 +302,7 @@ list(INSERT CMAKE_MODULE_PATH 0
   "${FLANG_SOURCE_DIR}/cmake/modules"
   "${LLVM_COMMON_CMAKE_UTILS}/Modules"
   )
+
 include(AddFlang)
 
 if (NOT DEFAULT_SYSROOT)
@@ -516,6 +514,9 @@ endif()
 
 option(FLANG_INCLUDE_DOCS "Generate build targets for the Flang docs."
        ${LLVM_INCLUDE_DOCS})
+if(FLANG_STANDALONE_BUILD)
+  include(HandleDoxygen)
+endif()
 if (FLANG_INCLUDE_DOCS)
   add_subdirectory(docs)
 endif()

diff  --git a/flang/docs/CMakeLists.txt b/flang/docs/CMakeLists.txt
index 5f2fb2fadd067..d23cb7ea8c586 100644
--- a/flang/docs/CMakeLists.txt
+++ b/flang/docs/CMakeLists.txt
@@ -1,5 +1,3 @@
-
-find_package(Doxygen)
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
@@ -48,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(flang_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index c30a0bca60e5e..46e83681a8141 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -34,6 +34,7 @@ if(LLDB_BUILT_STANDALONE)
   set(CMAKE_CXX_EXTENSIONS NO)
 
   include(LLDBStandalone)
+  include(HandleDoxygen)
 endif()
 
 include(LLDBConfig)

diff  --git a/lldb/docs/CMakeLists.txt b/lldb/docs/CMakeLists.txt
index 87e05db8c9431..ccdcb4df1c60e 100644
--- a/lldb/docs/CMakeLists.txt
+++ b/lldb/docs/CMakeLists.txt
@@ -1,11 +1,8 @@
-include(FindDoxygen)
-
 if(DOXYGEN_FOUND)
   set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/..)
   set(DOT dot)
   set(PACKAGE_VERSION mainline)
   set(abs_top_builddir ..)
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   add_custom_target(lldb-cpp-doc

diff  --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 075d3f3acfe3d..4509fbaba1d25 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -927,17 +927,6 @@ option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
 option (LLVM_ENABLE_TELEMETRY "Enable the telemetry library. If set to OFF, 
library cannot be enabled after build (eg., at runtime)" ON)
 
 include(HandleDoxygen)
-if (LLVM_ENABLE_DOXYGEN)
-  if (DOXYGEN_FOUND)
-    # If we find doxygen and we want to enable doxygen by default create a
-    # global aggregate doxygen target for generating llvm and any/all
-    # subprojects doxygen documentation.
-    if (LLVM_BUILD_DOCS)
-      add_custom_target(doxygen ALL)
-    endif()
-  endif()
-endif()
-
 
 set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/llvm/doxygen-html"
     CACHE STRING "Doxygen-generated HTML documentation install directory")

diff  --git a/llvm/docs/CMakeLists.txt b/llvm/docs/CMakeLists.txt
index 5c8a24c0d6516..4e12d7902b02d 100644
--- a/llvm/docs/CMakeLists.txt
+++ b/llvm/docs/CMakeLists.txt
@@ -56,7 +56,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(llvm_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/mlir/docs/CMakeLists.txt b/mlir/docs/CMakeLists.txt
index 53d9f73f912f6..447d4eb36ac70 100644
--- a/mlir/docs/CMakeLists.txt
+++ b/mlir/docs/CMakeLists.txt
@@ -1,4 +1,3 @@
-
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
@@ -47,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(mlir_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/openmp/docs/CMakeLists.txt b/openmp/docs/CMakeLists.txt
index 50e052e13e83e..186c903106463 100644
--- a/openmp/docs/CMakeLists.txt
+++ b/openmp/docs/CMakeLists.txt
@@ -1,4 +1,3 @@
-
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
   set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
@@ -47,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(openmp_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/polly/docs/CMakeLists.txt b/polly/docs/CMakeLists.txt
index b034b00ce9829..971653f015fed 100644
--- a/polly/docs/CMakeLists.txt
+++ b/polly/docs/CMakeLists.txt
@@ -46,7 +46,6 @@ if (LLVM_ENABLE_DOXYGEN)
     set(polly_doxygen_qhp_cust_filter_attrs "")
   endif()
 
-  include(HandleDoxygen)
   llvm_configure_doxygen()
 
   set(abs_top_srcdir)

diff  --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
index f6debee97511f..0a84ef3957f76 100644
--- a/runtimes/CMakeLists.txt
+++ b/runtimes/CMakeLists.txt
@@ -296,7 +296,9 @@ option(LLVM_INCLUDE_DOCS "Generate build targets for the 
runtimes documentation.
 option(LLVM_ENABLE_SPHINX "Use Sphinx to generate the runtimes documentation." 
OFF)
 option(RUNTIMES_EXECUTE_ONLY_CODE "Compile runtime libraries as execute-only." 
OFF)
 
-include(HandleDoxygen)
+if(NOT HAVE_LLVM_LIT)
+  include(HandleDoxygen)
+endif()
 
 if (RUNTIMES_EXECUTE_ONLY_CODE)
   # If a target doesn't support or recognise -mexecute-only, Clang will simply 
ignore the flag.


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to