diff --git a/cmake/QtBaseHelpers.cmake b/cmake/QtBaseHelpers.cmake index 63e445e3469..4b48f8f1766 100644 --- a/cmake/QtBaseHelpers.cmake +++ b/cmake/QtBaseHelpers.cmake @@ -212,7 +212,7 @@ macro(qt_internal_qtbase_build_repo) endif() if(NOT QT_INTERNAL_BUILD_STANDALONE_PARTS) - if(QT_WILL_BUILD_TOOLS AND QT_FEATURE_settings) + if(QT_FEATURE_settings) add_subdirectory(qmake) endif() diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index 78e85c76964..28c91af6d31 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -103,6 +103,19 @@ qt_internal_add_tool(${target_name} generators/win32/msvc_objectmodel.cpp # xml symbols clash with generators/win32/msbuild_objectmodel.cpp library/qmakeparser.cpp # struct statics clashes with qmakeevaluator_p.h ) + +# When we don't build tools, we still want to be able to build the documentation. +# Add a fake interface library to make sure the documentation target is created. +# We use the direct name rather than ${target_name} to ensure the doc target keeps +# the original name even when cross-building. +if(NOT TARGET qmake) + add_library(qmake INTERFACE) +endif() + +qt_internal_add_docs(qmake + doc/qmake.qdocconf +) + qt_internal_return_unless_building_tools() # Add QMAKE_VERSION_STR only if qmake is part of the build. @@ -137,6 +150,3 @@ set_target_properties(${target_name} PROPERTIES qt_internal_apply_gc_binaries(${target_name} PRIVATE) qt_skip_warnings_are_errors(${target_name}) -qt_internal_add_docs(${target_name} - doc/qmake.qdocconf -)