diff --git a/qtdeclarative.pro b/qtdeclarative.pro
index 58c33f27cacc16d2f4baed83ef3264e8868eb181..8bc15a566275a1f2354a101def213008353fe9d6 100644
--- a/qtdeclarative.pro
+++ b/qtdeclarative.pro
@@ -1 +1,2 @@
+CONFIG += tests_need_tools
 load(qt_parts)
diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro
index b973d44012126baa023440ebca09761bb1e91d97..ed828dfb4dc6dce5a73e2afe296d898d9f5c320c 100644
--- a/tests/auto/qml/qml.pro
+++ b/tests/auto/qml/qml.pro
@@ -69,3 +69,7 @@ SUBDIRS += debugger
 contains(QT_CONFIG, private_tests) {
     SUBDIRS += $$PRIVATETESTS
 }
+
+qtNomakeTools( \
+    qmlplugindump \
+)
diff --git a/tools/tools.pro b/tools/tools.pro
index 86e2f3804f0fd1b43ab1f087500e0203eb3aaf3b..eda9e85c8ca588b1e1535bd74b660b5b82b9b361 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -6,3 +6,14 @@ SUBDIRS += \
     qmlprofiler \
     qmlbundle
 qtHaveModule(quick):qtHaveModule(widgets): SUBDIRS += qmleasing
+
+# qmlmin & qmlbundle are build tools.
+# qmlscene is needed by the autotests.
+# qmltestrunner may be useful for manual testing.
+# qmlplugindump cannot be a build tool, because it loads target plugins.
+# The other apps are mostly "desktop" tools and are thus excluded.
+qtNomakeTools( \
+    qmlprofiler \
+    qmlplugindump \
+    qmleasing \
+)