diff --git a/src/client/client.pro b/src/client/client.pro
index 8bd9e1dc83a8775184c92826ac26c79bcb47002d..1a0779834fcbd1b34471c85487a9de9217c4661b 100644
--- a/src/client/client.pro
+++ b/src/client/client.pro
@@ -1,17 +1,9 @@
 TARGET = QtWaylandClient
+MODULE = waylandclient
+
 QT += core-private gui-private
 QT_FOR_PRIVATE += platformsupport-private
 
-MODULE=waylandclient
-MODULE_PLUGIN_TYPES = \
-            wayland-graphics-integration-client \
-            wayland-inputdevice-integration \
-            wayland-decoration-client
-
-CONFIG += generated_privates
-
-load(qt_module)
-
 # We have a bunch of C code with casts, so we can't have this option
 QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual
 
@@ -117,3 +109,10 @@ HEADERS +=  qwaylandintegration_p.h \
 include(hardwareintegration/hardwareintegration.pri)
 include(shellintegration/shellintegration.pri)
 include(inputdeviceintegration/inputdeviceintegration.pri)
+
+CONFIG += generated_privates
+MODULE_PLUGIN_TYPES = \
+            wayland-graphics-integration-client \
+            wayland-inputdevice-integration \
+            wayland-decoration-client
+load(qt_module)
diff --git a/src/compositor/compositor.pro b/src/compositor/compositor.pro
index cf6300c06107f9062d86e52a89ce33d0c84ed664..710fa2dcd821229c687c451dae867048bf0d3b2c 100644
--- a/src/compositor/compositor.pro
+++ b/src/compositor/compositor.pro
@@ -3,9 +3,6 @@ QT = core gui-private
 
 contains(QT_CONFIG, opengl):MODULE_DEFINES = QT_COMPOSITOR_WAYLAND_GL
 
-MODULE_PLUGIN_TYPES = wayland-graphics-integration-server
-load(qt_module)
-
 CONFIG -= precompile_header
 CONFIG += link_pkgconfig
 
@@ -27,4 +24,6 @@ include ($$PWD/hardware_integration/hardware_integration.pri)
 include ($$PWD/compositor_api/compositor_api.pri)
 include ($$PWD/windowmanagerprotocol/windowmanagerprotocol.pri)
 
-
+MODULE_PLUGIN_TYPES = \
+    wayland-graphics-integration-server
+load(qt_module)
diff --git a/src/plugins/decorations/bradient/bradient.pro b/src/plugins/decorations/bradient/bradient.pro
index fd376f4a9851389de1ae23448e9d61ab93803b6d..0f62db9cc9d96be613592f640680f82505175653 100644
--- a/src/plugins/decorations/bradient/bradient.pro
+++ b/src/plugins/decorations/bradient/bradient.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-decoration-client
-load(qt_plugin)
-
 QT += waylandclient-private
 
 OTHER_FILES += \
@@ -15,3 +12,5 @@ contains(QT_CONFIG, no-pkg-config) {
     PKGCONFIG += wayland-client
 }
 
+PLUGIN_TYPE = wayland-decoration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro b/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro
index 6dbe53732edc4ee0e910549d8eef5c5e87c6708a..550343cfe99ecb62320ab96b9b37a8eb9cf569a4 100644
--- a/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro
+++ b/src/plugins/hardwareintegration/client/brcm-egl/brcm-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../../hardwareintegration/client/brcm-egl/brcm-egl.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro b/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro
index 827228d2bdd772a194c5423ab173a5750f101b4d..29a48c9e6e79b0e2cba47256f366801225e08ec2 100644
--- a/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro
+++ b/src/plugins/hardwareintegration/client/drm-egl-server/drm-egl-server.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 # We have a bunch of C code with casts, so we can't have this option
 QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual
 
@@ -13,3 +10,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro b/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro
index 55f98415d5806c1c286c05b7e31cafdb5faef760..d7bf03705ce0387a91e7cf3a171f5a4e9dbaec3d 100644
--- a/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro
+++ b/src/plugins/hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../../hardwareintegration/client/libhybris-egl-server/libhybris-egl-server.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
index 38989628886f38f09582d9148dddab17aee49ad8..076b6af2c34779f8c27526146041c80eceeeea21 100644
--- a/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
+++ b/src/plugins/hardwareintegration/client/wayland-egl/wayland-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../../hardwareintegration/client/wayland-egl/wayland-egl.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro b/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro
index 1af1786695f6ae518923350f7e661b91f40151f9..031d2812ad9e1a35d96ba72b9ef50b1d85e92543 100644
--- a/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro
+++ b/src/plugins/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 # We have a bunch of C code with casts, so we can't have this option
 QMAKE_CXXFLAGS_WARN_ON -= -Wcast-qual
 
@@ -13,3 +10,5 @@ OTHER_FILES += xcomposite-egl.json
 SOURCES += \
     main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro b/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro
index 0080150ccd1cf72cb2f143ca7d59aa018352d4f4..eb8e03c7f3359889f47355a34b93cb943f8e1ad4 100644
--- a/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro
+++ b/src/plugins/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-client
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../../hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += xcomposite-glx.json
 SOURCES += \
     main.cpp
 
+PLUGIN_TYPE = wayland-graphics-integration-client
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro b/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro
index f47898a4898fef9dc6f097f205af6b96f65783c7..615b6914eef56ed01bb84cd5a08daed6784c3043 100644
--- a/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro
+++ b/src/plugins/hardwareintegration/compositor/brcm-egl/brcm-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT = compositor compositor-private core-private gui-private
 
 OTHER_FILES += brcm-egl.json
@@ -9,3 +6,6 @@ SOURCES += \
     main.cpp
 
 include(../../../../hardwareintegration/compositor/brcm-egl/brcm-egl.pri)
+
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro b/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro
index 4e26939376606b5f6eee9095687d59d4ed5ecf7a..2c428dfb4a00ba75917fed2431bede7f479e3674 100644
--- a/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro
+++ b/src/plugins/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT = compositor compositor-private core-private gui-private
 
 OTHER_FILES += drm-egl-server.json
@@ -10,3 +7,5 @@ SOURCES += \
 
 include($PWD/../../../../../hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri)
 
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro
index fb59c40a27a8f3eb8aa200f5969877e5452ee3b9..039455c1b1f2e0eb0c9ee04a2b2660019dd25851 100644
--- a/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro
+++ b/src/plugins/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT = compositor compositor-private core-private gui-private
 
 OTHER_FILES += libhybris-egl-server.json
@@ -10,3 +7,5 @@ SOURCES += \
 
 include($PWD/../../../../../hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri)
 
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro b/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro
index c1a23cd64c2f529d6ad7788fa5c69687939d7bbf..48e59770a812574267ef6fb632d74380db8cb0f2 100644
--- a/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro
+++ b/src/plugins/hardwareintegration/compositor/wayland-egl/wayland-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT = compositor compositor-private core-private gui-private platformsupport-private
 
 OTHER_FILES += wayland-egl.json
@@ -9,3 +6,6 @@ SOURCES += \
     main.cpp
 
 include(../../../../hardwareintegration/compositor/wayland-egl/wayland-egl.pri)
+
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro b/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro
index 059e462ccb7faaf169ca7d6be63749076cad0763..93cebcbc6eeedf8c1c1dd3ee4535a83324e07f21 100644
--- a/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT += compositor compositor-private core-private gui-private
 
 OTHER_FILES += xcomposite-egl.json
@@ -9,3 +6,6 @@ SOURCES += \
     main.cpp
 
 include(../../../../hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri)
+
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro b/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro
index d8d6f0e0e857dccd4b3c292e754eed7da002af54..880be8ce4cd0d3a3c89c6878778f3e22affd5063 100644
--- a/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro
+++ b/src/plugins/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = wayland-graphics-integration-server
-load(qt_plugin)
-
 QT += compositor compositor-private core-private gui-private
 
 OTHER_FILES += xcomposite-glx.json
@@ -9,3 +6,6 @@ SOURCES += \
     main.cpp
 
 include(../../../../hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri)
+
+PLUGIN_TYPE = wayland-graphics-integration-server
+load(qt_plugin)
diff --git a/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro b/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro
index 1e28043a2c4e983d6839594e7e595f09dfcb9a49..4ff617136ce3737a80a5cc3db6d9902b3b0363e2 100644
--- a/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro
+++ b/src/plugins/platforms/qwayland-brcm-egl/qwayland-brcm-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = platforms
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../hardwareintegration/client/brcm-egl/brcm-egl.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = platforms
+load(qt_plugin)
diff --git a/src/plugins/platforms/qwayland-egl/qwayland-egl.pro b/src/plugins/platforms/qwayland-egl/qwayland-egl.pro
index 279a7c382e2a49a039adaac2e9c655dfbb95ad7c..b64a8cc44bc4ef5a15558020469a337c2135dbe1 100644
--- a/src/plugins/platforms/qwayland-egl/qwayland-egl.pro
+++ b/src/plugins/platforms/qwayland-egl/qwayland-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = platforms
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../hardwareintegration/client/wayland-egl/wayland-egl.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = platforms
+load(qt_plugin)
diff --git a/src/plugins/platforms/qwayland-generic/qwayland-generic.pro b/src/plugins/platforms/qwayland-generic/qwayland-generic.pro
index cf42d1eb87efd903682b57925bf2a2db3ce919a3..5457e9dfc45399cd9d5c54e61b519c3ca6e98ee1 100644
--- a/src/plugins/platforms/qwayland-generic/qwayland-generic.pro
+++ b/src/plugins/platforms/qwayland-generic/qwayland-generic.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = platforms
-load(qt_plugin)
-
 QT += waylandclient-private
 
 OTHER_FILES += \
@@ -8,3 +5,5 @@ OTHER_FILES += \
 
 SOURCES += main.cpp
 
+PLUGIN_TYPE = platforms
+load(qt_plugin)
diff --git a/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro b/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro
index 74a71a57a410fca7774dbf282df528c2808a1fac..7c7a3dd28c7cb327e3b9902d88b81f7d0970c8eb 100644
--- a/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro
+++ b/src/plugins/platforms/qwayland-xcomposite-egl/qwayland-xcomposite-egl.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = platforms
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri)
@@ -10,3 +7,5 @@ OTHER_FILES += qwayland-xcomposite-egl.json
 SOURCES += \
     main.cpp
 
+PLUGIN_TYPE = platforms
+load(qt_plugin)
diff --git a/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro b/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro
index 307ad5ed67f4f7f1884d976637b16fe7f61749d6..c0c12c9d952b7bb08b89db8424db073817b2b758 100644
--- a/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro
+++ b/src/plugins/platforms/qwayland-xcomposite-glx/qwayland-xcomposite-glx.pro
@@ -1,6 +1,3 @@
-PLUGIN_TYPE = platforms
-load(qt_plugin)
-
 QT += waylandclient-private
 
 include(../../../hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri)
@@ -12,3 +9,6 @@ SOURCES += \
 
 HEADERS += \
     qwaylandxcompositeglxplatformintegration.h
+
+PLUGIN_TYPE = platforms
+load(qt_plugin)