diff --git a/src/assistant/assistant/assistant.pro b/src/assistant/assistant/assistant.pro
index c054147b81bd3494b7f0168a2340555d98a4053c..c8ce999fa74f32abd1718fe1469dc08ecee77a87 100644
--- a/src/assistant/assistant/assistant.pro
+++ b/src/assistant/assistant/assistant.pro
@@ -1,13 +1,8 @@
-TEMPLATE = app
-LANGUAGE = C++
-TARGET = assistant
-DESTDIR = $$QT.help.bins
 qtHaveModule(webkitwidgets):!contains(QT_CONFIG, static) {
     QT += webkitwidgets
 } else {
     DEFINES += QT_NO_WEBKIT
 }
-!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
 QT += widgets network help sql help
 qtHaveModule(printsupport): QT += printsupport
 PROJECTNAME = Assistant
@@ -109,5 +104,4 @@ mac {
 
 contains(SQLPLUGINS, sqlite):QTPLUGIN += qsqlite
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
+load(qt_app)
diff --git a/src/assistant/qhelpconverter/qhelpconverter.pro b/src/assistant/qhelpconverter/qhelpconverter.pro
index 8c8adfe24c14a3bc18a6ab1688e991a8e9115d24..d60aae7ccc4c17d0e3e356767f1f8894dd54b9d2 100644
--- a/src/assistant/qhelpconverter/qhelpconverter.pro
+++ b/src/assistant/qhelpconverter/qhelpconverter.pro
@@ -1,11 +1,4 @@
 QT += help widgets
-TEMPLATE = app
-TARGET = qhelpconverter
-DESTDIR = $$QT.help.bins
-!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
-
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
 
 SOURCES += conversionwizard.cpp \
            inputpage.cpp \
@@ -45,3 +38,5 @@ FORMS   += inputpage.ui \
            outputpage.ui
 
 RESOURCES += qhelpconverter.qrc
+
+load(qt_app)
diff --git a/src/designer/src/designer/designer.pro b/src/designer/src/designer/designer.pro
index 75d6f08268c837a5a7bc6ba1c0d7d5586a2c53b4..e61a58fe91d57c24ee1146820536d976442bc194 100644
--- a/src/designer/src/designer/designer.pro
+++ b/src/designer/src/designer/designer.pro
@@ -1,7 +1,5 @@
-DESTDIR = $$QT.designer.bins
 QT += core-private widgets xml network designer-private designercomponents
 qtHaveModule(printsupport): QT += printsupport
-!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
 
 INCLUDEPATH += \
     ../lib/sdk \
@@ -15,8 +13,6 @@ contains(QT_CONFIG, static) {
     DEFINES += QT_DESIGNER_STATIC
 }
 
-TARGET = designer
-
 include(../../../shared/fontpanel/fontpanel.pri)
 include(../../../shared/qttoolbardialog/qttoolbardialog.pri)
 
@@ -76,7 +72,6 @@ mac {
     QMAKE_BUNDLE_DATA += FILETYPES
 }
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
-
 unix:!mac:LIBS += -lm
+
+load(qt_app)
diff --git a/src/kmap2qmap/kmap2qmap.pro b/src/kmap2qmap/kmap2qmap.pro
index 366485761a51c51bcae6233b2a647be65b5bf820..7ccdc2c2495bf92f491871b84a1dd0689256cb88 100644
--- a/src/kmap2qmap/kmap2qmap.pro
+++ b/src/kmap2qmap/kmap2qmap.pro
@@ -1,8 +1,6 @@
-
-TEMPLATE = app
-DESTDIR = $$QT.designer.bins
 QT = core platformsupport-private
 CONFIG += console
-CONFIG -= app_bundle
 
 SOURCES += main.cpp
+
+load(qt_app)
diff --git a/src/linguist/linguist/linguist.pro b/src/linguist/linguist/linguist.pro
index a19fec09b2d81543897cae836ff053fed4446dfc..de04e514a8718ce2d4cb0458ae00333bf6138917 100644
--- a/src/linguist/linguist/linguist.pro
+++ b/src/linguist/linguist/linguist.pro
@@ -1,12 +1,7 @@
-TEMPLATE = app
-LANGUAGE = C++
-DESTDIR = $$QT.designer.bins
-
 QT += core-private widgets xml uitools-private
 qtHaveModule(printsupport): QT += printsupport
 
 DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_CAST_TO_ASCII
-!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
 
 include(../shared/formats.pri)
 
@@ -73,13 +68,12 @@ mac {
 }
 PROJECTNAME = Qt \
     Linguist
-target.path = $$[QT_INSTALL_BINS]
-INSTALLS += target
-phrasebooks.path = $$[QT_INSTALL_DATA]/phrasebooks
 
+phrasebooks.path = $$[QT_INSTALL_DATA]/phrasebooks
 # ## will this work on windows?
 phrasebooks.files = $$PWD/../phrasebooks/*
 INSTALLS += phrasebooks
+
 FORMS += statistics.ui \
     phrasebookbox.ui \
     batchtranslation.ui \
@@ -88,3 +82,5 @@ FORMS += statistics.ui \
     translationsettings.ui \
     finddialog.ui
 RESOURCES += linguist.qrc
+
+load(qt_app)
diff --git a/src/macdeployqt/macchangeqt/macchangeqt.pro b/src/macdeployqt/macchangeqt/macchangeqt.pro
index 735123d67a69b993ffe03da1a2bc6faa112b0b2c..3d5be8d2c12e45e0c1c9105275302693e24d3d51 100644
--- a/src/macdeployqt/macchangeqt/macchangeqt.pro
+++ b/src/macdeployqt/macchangeqt/macchangeqt.pro
@@ -1,2 +1,3 @@
 SOURCES += main.cpp ../shared/shared.cpp
-CONFIG -= app_bundle
+
+load(qt_app)
diff --git a/src/macdeployqt/macdeployqt/macdeployqt.pro b/src/macdeployqt/macdeployqt/macdeployqt.pro
index 8bca0d2543d5956ae1f5a7f336abd52d60bea36b..3d5be8d2c12e45e0c1c9105275302693e24d3d51 100644
--- a/src/macdeployqt/macdeployqt/macdeployqt.pro
+++ b/src/macdeployqt/macdeployqt/macdeployqt.pro
@@ -1,7 +1,3 @@
-DESTDIR     = $$QT.designer.bins
-
 SOURCES += main.cpp ../shared/shared.cpp
-CONFIG -= app_bundle
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
+load(qt_app)
diff --git a/src/makeqpf/makeqpf.pro b/src/makeqpf/makeqpf.pro
index 17264b5db709b69d2f112bb763f52ff31a06c0d2..5a8abc882f112a30dc61f09584cfa9f43db3cc0d 100644
--- a/src/makeqpf/makeqpf.pro
+++ b/src/makeqpf/makeqpf.pro
@@ -1,6 +1,5 @@
 QT += widgets gui-private core-private
 CONFIG += console
-DESTDIR = $$QT.designer.bins
 DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
 
 HEADERS += qpf2.h mainwindow.h
@@ -9,5 +8,4 @@ DEFINES += QT_NO_FREETYPE
 FORMS += mainwindow.ui
 RESOURCES += makeqpf.qrc
 
-target.path = $$[QT_INSTALL_BINS]
-INSTALLS += target
+load(qt_app)
diff --git a/src/pixeltool/pixeltool.pro b/src/pixeltool/pixeltool.pro
index d6dc6a2a23e47ed30537ff684a8a3bf6bf27c675..5eb448b493600de539baabc74d630ec150dc31e6 100644
--- a/src/pixeltool/pixeltool.pro
+++ b/src/pixeltool/pixeltool.pro
@@ -1,8 +1,5 @@
-!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
 QT += widgets network
 
-DESTDIR     = $$QT.designer.bins
-
 mac {
     QMAKE_INFO_PLIST=Info_mac.plist
 }
@@ -10,5 +7,4 @@ mac {
 SOURCES += main.cpp qpixeltool.cpp
 HEADERS += qpixeltool.h
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
+load(qt_app)
diff --git a/src/qconfig/qconfig.pro b/src/qconfig/qconfig.pro
index 3e9c12053f6aeb7da1c8d0970ef2fab49db64222..ad0edd72600c9f240014f89f0201631fb7d0aca8 100644
--- a/src/qconfig/qconfig.pro
+++ b/src/qconfig/qconfig.pro
@@ -1,9 +1,6 @@
-TEMPLATE	= app
 QT += widgets
-build_all:!build_pass {
-    CONFIG -= build_all
-    CONFIG += release
-}
+
 HEADERS		= feature.h featuretreemodel.h graphics.h
 SOURCES		= main.cpp feature.cpp featuretreemodel.cpp
-TARGET		= qconfig
+
+load(qt_app)
diff --git a/src/qdbus/qdbus/qdbus.pro b/src/qdbus/qdbus/qdbus.pro
index 1abe3f3f8b7416a03760d1a9507ae98a143c33d6..10a709e9808495d35ddd0fd62baaa83d3238aacf 100644
--- a/src/qdbus/qdbus/qdbus.pro
+++ b/src/qdbus/qdbus/qdbus.pro
@@ -1,9 +1,5 @@
 SOURCES = qdbus.cpp
-DESTDIR = $$QT.designer.bins
-TARGET = qdbus
 QT = core dbus-private xml
-CONFIG -= app_bundle
 win32:CONFIG += console
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
+load(qt_app)
diff --git a/src/qdbus/qdbusviewer/qdbusviewer.pro b/src/qdbus/qdbusviewer/qdbusviewer.pro
index 2c6476cd7bf766bcc9f6b7825fbef20122dc3a64..23c6ba0271e4f81ec2dabe65416509bd7a19f1f2 100644
--- a/src/qdbus/qdbusviewer/qdbusviewer.pro
+++ b/src/qdbus/qdbusviewer/qdbusviewer.pro
@@ -1,6 +1,3 @@
-TEMPLATE        = app
-TARGET          = qdbusviewer
-
 HEADERS         = qdbusviewer.h \
                   qdbusmodel.h \
                   propertydialog.h
@@ -12,13 +9,8 @@ SOURCES         = qdbusviewer.cpp \
 
 RESOURCES += qdbusviewer.qrc
 
-DESTDIR = $$QT.designer.bins
-
 QT += widgets dbus-private xml
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS += target
-
 mac {
     ICON = images/qdbusviewer.icns
     QMAKE_INFO_PLIST = Info_mac.plist
@@ -27,3 +19,5 @@ mac {
 win32 {
     RC_FILE = qdbusviewer.rc
 }
+
+load(qt_app)
diff --git a/src/qev/qev.pro b/src/qev/qev.pro
index 061a9e625f13c9d7e087bfdeb322a87d491c97f5..f00826ad1ad62afe0038fcc19b7f543a210ee317 100644
--- a/src/qev/qev.pro
+++ b/src/qev/qev.pro
@@ -1,3 +1,5 @@
 QT += widgets
 
 SOURCES += qev.cpp
+
+load(qt_app)
diff --git a/src/qtconfig/qtconfig.pro b/src/qtconfig/qtconfig.pro
index e600594c6c14668abc786a00eb6060a9ea547c36..775a6b1dc33e20211f72476af11b560f27364f08 100644
--- a/src/qtconfig/qtconfig.pro
+++ b/src/qtconfig/qtconfig.pro
@@ -1,10 +1,4 @@
-TEMPLATE = app
 CONFIG   += x11
-build_all:!build_pass {
-    CONFIG -= build_all
-    CONFIG += release
-}
-LANGUAGE = C++
 QT += gui-private widgets
 
 contains(QT_CONFIG, gstreamer):LIBS += $$QT_LIBS_GSTREAMER -lgstinterfaces-0.10 -lgstvideo-0.10 -lgstbase-0.10
@@ -20,9 +14,7 @@ FORMS        = mainwindow.ui paletteeditoradvanced.ui previewwidget.ui
 RESOURCES    = qtconfig.qrc
 
 PROJECTNAME        = Qt Configuration
-TARGET             = qtconfig
-DESTDIR            = $$QT.designer.bins
 
-target.path=$$[QT_INSTALL_BINS]
-INSTALLS        += target
 DBFILE          = qtconfig.db
+
+load(qt_app)
diff --git a/src/qtestlib/wince/cetcpsync/cetcpsync.pro b/src/qtestlib/wince/cetcpsync/cetcpsync.pro
index 0e3205ccc6f7e39e4c7b977ac6c55030157648b7..ddfb44afadea16ddfdca84d252a40d85f438649f 100644
--- a/src/qtestlib/wince/cetcpsync/cetcpsync.pro
+++ b/src/qtestlib/wince/cetcpsync/cetcpsync.pro
@@ -1,15 +1,6 @@
-TARGET   = cetcpsync
-DESTDIR = $$QT.designer.bins
 CONFIG   += console
-CONFIG   -= app_bundle
 QT       += network
 QT       -= gui
-TEMPLATE = app
-
-build_all:!build_pass {
-    CONFIG -= build_all
-    CONFIG += release
-}
 
 INCLUDEPATH += ../cetcpsyncserver
 
@@ -20,3 +11,5 @@ SOURCES += main.cpp \
 HEADERS += \
            remoteconnection.h \
            qtcesterconnection.h
+
+load(qt_app)
diff --git a/src/qtestlib/wince/cetcpsyncserver/cetcpsyncserver.pro b/src/qtestlib/wince/cetcpsyncserver/cetcpsyncserver.pro
index f03ebd10f4ebf7014875e4fef9dbdc73699fe965..7d8b346e1e4aa0941ee585b9fb89e731756a4ed3 100644
--- a/src/qtestlib/wince/cetcpsyncserver/cetcpsyncserver.pro
+++ b/src/qtestlib/wince/cetcpsyncserver/cetcpsyncserver.pro
@@ -1,4 +1,3 @@
-TEMPLATE = app
 TARGET = cetcpsyncsvr
 QT -= gui
 QT += network
@@ -14,3 +13,5 @@ SOURCES +=  \
             connectionmanager.cpp \
             commands.cpp \
             main.cpp
+
+load(qt_app)
diff --git a/src/qtestlib/wince/cetest/cetest.pro b/src/qtestlib/wince/cetest/cetest.pro
index a31aa2e7cea36894b2a67997babb7c40dd4946a4..e7aa7efe3a68d2f26e7f698500a97a81f4dde9e2 100644
--- a/src/qtestlib/wince/cetest/cetest.pro
+++ b/src/qtestlib/wince/cetest/cetest.pro
@@ -1,11 +1,3 @@
-TEMPLATE = app
-TARGET = cetest
-DESTDIR = $$QT.designer.bins
-build_all:!build_pass {
-    CONFIG -= build_all
-    CONFIG += release
-}
-
 CONFIG += console no_batch
 CONFIG -= qt
 
@@ -48,3 +40,5 @@ isEmpty(QT_CE_RAPI_INC) {
 
 include(qmake_include.pri)
 include(bootstrapped.pri)
+
+load(qt_app)