diff --git a/cmake/QtBuildRepoHelpers.cmake b/cmake/QtBuildRepoHelpers.cmake index a8e11586c02..c1816d712c2 100644 --- a/cmake/QtBuildRepoHelpers.cmake +++ b/cmake/QtBuildRepoHelpers.cmake @@ -309,6 +309,7 @@ macro(qt_build_repo_begin) if(NOT TARGET host_tools) add_custom_target(host_tools) add_custom_target(bootstrap_tools) + add_custom_target(doc_tools) # TODO: Investigate complexity of installing tools for shared builds. # Currently installing host tools without libraries only really makes sense for static @@ -322,9 +323,21 @@ macro(qt_build_repo_begin) COMMAND ${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR} --component host_tools --strip ) + + add_custom_target(install_doc_tools + COMMAND ${CMAKE_COMMAND} + --install ${CMAKE_BINARY_DIR} --component doc_tools + ) + add_custom_target(install_doc_tools_stripped + COMMAND ${CMAKE_COMMAND} + --install ${CMAKE_BINARY_DIR} --component doc_tools --strip + ) + if(NOT QT_INTERNAL_NO_INSTALL_TOOLS_BUILD_DEPS) add_dependencies(install_tools host_tools) add_dependencies(install_tools_stripped host_tools) + add_dependencies(install_doc_tools doc_tools) + add_dependencies(install_doc_tools_stripped doc_tools) endif() endif() endif() diff --git a/cmake/QtToolHelpers.cmake b/cmake/QtToolHelpers.cmake index 1d0d93a071c..f9709a6079c 100644 --- a/cmake/QtToolHelpers.cmake +++ b/cmake/QtToolHelpers.cmake @@ -22,6 +22,10 @@ # TRY_RUN_FLAGS # Command line flags that are going to be passed to the tool for testing its correctness. # If no flags were given, we default to `-v`. +# REQUIRED_FOR_DOCS +# Specifies that the built tool is required to generate documentation. Examples are qdoc, +# and qvkgen (because they participate in header file generation, which are needed for +# documentation generation). # # One-value Arguments: # EXTRA_CMAKE_FILES @@ -51,6 +55,7 @@ function(qt_internal_add_tool target_name) EXCEPTIONS NO_UNITY_BUILD TRY_RUN + REQUIRED_FOR_DOCS ${__qt_internal_sbom_optional_args} ) set(one_value_keywords @@ -170,6 +175,9 @@ function(qt_internal_add_tool target_name) if(TARGET host_tools) add_dependencies(host_tools "${target_name}") + if(arg_REQUIRED_FOR_DOCS) + add_dependencies(doc_tools "${target_name}") + endif() if(arg_CORE_LIBRARY STREQUAL "Bootstrap") add_dependencies(bootstrap_tools "${target_name}") endif() diff --git a/src/tools/qdbusxml2cpp/CMakeLists.txt b/src/tools/qdbusxml2cpp/CMakeLists.txt index 0da22ebfc62..8ce7ec2679a 100644 --- a/src/tools/qdbusxml2cpp/CMakeLists.txt +++ b/src/tools/qdbusxml2cpp/CMakeLists.txt @@ -7,6 +7,7 @@ qt_get_tool_target_name(target_name qdbusxml2cpp) qt_internal_add_tool(${target_name} + REQUIRED_FOR_DOCS TRY_RUN TARGET_DESCRIPTION "Qt D-Bus XML to C++ Compiler" TOOLS_TARGET DBus diff --git a/src/tools/qvkgen/CMakeLists.txt b/src/tools/qvkgen/CMakeLists.txt index 0f68968fd33..73da08c30e8 100644 --- a/src/tools/qvkgen/CMakeLists.txt +++ b/src/tools/qvkgen/CMakeLists.txt @@ -7,6 +7,7 @@ qt_get_tool_target_name(target_name qvkgen) qt_internal_add_tool(${target_name} + REQUIRED_FOR_DOCS TARGET_DESCRIPTION "Qt Vulkan Header Generator" INSTALL_DIR "${INSTALL_LIBEXECDIR}" TOOLS_TARGET Gui