diff --git a/qbs/imports/QtcCommercialPlugin.qbs b/qbs/imports/QtcCommercialPlugin.qbs
new file mode 100644
index 0000000000000000000000000000000000000000..e3ef7a37570879c7907d24d2434ff79c3cb01bee
--- /dev/null
+++ b/qbs/imports/QtcCommercialPlugin.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+QtcPlugin {
+    Depends { name: "LicenseChecker"; required: false }
+    cpp.defines: base.concat(LicenseChecker.present ? ["LICENSECHECKER"] : [])
+}
diff --git a/qbs/imports/QtcDevHeaders.qbs b/qbs/imports/QtcDevHeaders.qbs
new file mode 100644
index 0000000000000000000000000000000000000000..3ca47308346557f3fe792748d189cb26bf3a7cf2
--- /dev/null
+++ b/qbs/imports/QtcDevHeaders.qbs
@@ -0,0 +1,15 @@
+import qbs
+import qbs.FileInfo
+
+Product {
+    property string productName: project.name
+    name: productName + " dev headers"
+    condition: qtc.make_dev_package
+    Depends { name: "qtc" }
+    Group {
+        files: ["**/*.h"]
+        qbs.install: true
+        qbs.installDir: qtc.ide_include_path + '/' + FileInfo.fileName(product.sourceDirectory)
+        qbs.installSourceBase: product.sourceDirectory
+    }
+}
diff --git a/qbs/imports/QtcLibrary.qbs b/qbs/imports/QtcLibrary.qbs
index 8b591e067d7ee60cfa1a436f695bcdeab0ca115f..0738e47c099d72dad83785cb7d8c2e693833ee66 100644
--- a/qbs/imports/QtcLibrary.qbs
+++ b/qbs/imports/QtcLibrary.qbs
@@ -2,8 +2,9 @@ import qbs 1.0
 import QtcFunctions
 
 QtcProduct {
-    type: ["dynamiclibrary", "dynamiclibrary_symlink"]
+    type: ["dynamiclibrary", "dynamiclibrary_symlink", "qtc.dev-module"]
     installDir: qtc.ide_library_path
+    installTags: ["dynamiclibrary", "dynamiclibrary_symlink"]
     Depends {
         condition: qtc.testsEnabled
         name: "Qt.test"
diff --git a/qbs/imports/QtcPlugin.qbs b/qbs/imports/QtcPlugin.qbs
index f35bdf85f57fa3349d87f82ed4c53885428f413e..aa97a8bc106630c668cad7406ccb318e720db2ae 100644
--- a/qbs/imports/QtcPlugin.qbs
+++ b/qbs/imports/QtcPlugin.qbs
@@ -3,8 +3,9 @@ import qbs.FileInfo
 import QtcFunctions
 
 QtcProduct {
-    type: ["dynamiclibrary", "pluginSpec"]
+    type: ["dynamiclibrary", "pluginSpec", "qtc.dev-module"]
     installDir: qtc.ide_plugin_path
+    installTags: ["dynamiclibrary"]
 
     property var pluginJsonReplacements
     property var pluginRecommends: []
diff --git a/qbs/imports/QtcProduct.qbs b/qbs/imports/QtcProduct.qbs
index 312fa72fd4b0dca4afdf360aee61febe10de7309..0e17a4145f7fbd159cdb77e6f30d723d85bcae99 100644
--- a/qbs/imports/QtcProduct.qbs
+++ b/qbs/imports/QtcProduct.qbs
@@ -2,12 +2,15 @@ import qbs 1.0
 import QtcFunctions
 
 Product {
+    name: project.name
     version: qtc.qtcreator_version
     property bool install: true
     property string installDir
+    property stringList installTags: type
 
     Depends { name: "cpp" }
     Depends { name: "qtc" }
+    Depends { name: product.name + " dev headers"; required: false }
 
     cpp.cxxLanguageVersion: "c++11"
     cpp.defines: qtc.generalDefines
@@ -24,8 +27,14 @@ Product {
     Depends { name: "Qt.core" }
 
     Group {
-        fileTagsFilter: product.type
+        fileTagsFilter: installTags
         qbs.install: install
         qbs.installDir: installDir
     }
+
+    Group {
+        fileTagsFilter: ["qtc.dev-module"]
+        qbs.install: true
+        qbs.installDir: qtc.ide_qbs_modules_path + '/' + product.name
+    }
 }
diff --git a/qbs/modules/qtc/qtc.js b/qbs/modules/qtc/qtc.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebaa063a7ec500a724d4ae8ee2848fbaaa2742e8
--- /dev/null
+++ b/qbs/modules/qtc/qtc.js
@@ -0,0 +1,92 @@
+var File = loadExtension("qbs.File");
+var FileInfo = loadExtension("qbs.FileInfo");
+var TextFile = loadExtension("qbs.TextFile");
+
+function getExportBlock(productFile)
+{
+    var exportBlock = "";
+    var exportIndex = -1;
+    while (!productFile.atEof()) {
+        var line = productFile.readLine();
+        if (exportIndex === -1) {
+            exportIndex = line.indexOf("Export {");
+            continue;
+        }
+        if (line.indexOf('}') === exportIndex)
+            break;
+        exportBlock += line + '\n';
+    }
+    return exportBlock;
+}
+
+function getDependsItemsFromExportBlock(exportBlock)
+{
+    var lines = exportBlock.split('\n');
+    var dependsItems = ["Depends { name: 'cpp' }"];
+    var dependsIndex = -1;
+    var currentDependsItem;
+    for (var i = 0; i < lines.length; ++i) {
+        var line = lines[i];
+        if (dependsIndex !== -1) {
+            currentDependsItem += line;
+            if (line.indexOf('}') === dependsIndex) {
+                dependsItems.push(currentDependsItem);
+                dependsIndex = -1;
+            }
+            continue;
+        }
+        dependsIndex = line.indexOf("Depends {");
+        if (dependsIndex === -1)
+            continue;
+        if (line.contains('}')) {
+            if (!dependsItems.contains("cpp"))
+                dependsItems.push(line);
+            dependsIndex = -1;
+        } else {
+            currentDependsItem = line;
+        }
+    }
+    return dependsItems;
+}
+
+function getDependsItems(product)
+{
+    var productFilePath = FileInfo.joinPaths(product.sourceDirectory,
+                                             FileInfo.fileName(product.sourceDirectory) + ".qbs");
+    var productFile = new TextFile(productFilePath, TextFile.ReadOnly);
+    try {
+        var exportBlock = getExportBlock(productFile);
+        return getDependsItemsFromExportBlock(exportBlock);
+    } finally {
+        productFile.close();
+    }
+}
+
+function writeModuleFile(product, input, output, dependsItems)
+{
+    var moduleFile = new TextFile(output.filePath, TextFile.WriteOnly);
+    try {
+        moduleFile.writeLine("import qbs");
+        moduleFile.writeLine("");
+        moduleFile.writeLine("Module {")
+        for (var i = 0; i < dependsItems.length; ++i) {
+            moduleFile.writeLine("    " + dependsItems[i].trim());
+            moduleFile.writeLine("");
+        }
+        var includePath = FileInfo.joinPaths("/",
+                                             product.moduleProperty("qtc", "ide_include_path"));
+        var modulePath = FileInfo.joinPaths("/",
+                product.moduleProperty("qtc", "ide_qbs_modules_path"), product.name);
+        var relPathToIncludes = FileInfo.relativePath(modulePath, includePath);
+        moduleFile.writeLine("    cpp.includePaths: [path + '/" + relPathToIncludes + "']");
+        var libInstallPath = FileInfo.joinPaths("/", input.moduleProperty("qbs", "installPrefix"),
+                                                input.moduleProperty("qbs", "installDir"));
+        var relPathToLibrary = FileInfo.relativePath(modulePath, libInstallPath);
+        var libType = input.fileTags.contains("dynamiclibrary") ? "dynamic" : "static";
+        moduleFile.writeLine("    cpp." + libType + "Libraries: [path + '/"
+                             + relPathToLibrary + "/" + input.fileName + "']");
+        moduleFile.writeLine("}");
+    } finally {
+        moduleFile.close();
+    }
+}
diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs
index 9377865ecc86f759819de5eec6be147116501bb6..53ed54719cc1695eb10a0000f492692af2ef3273 100644
--- a/qbs/modules/qtc/qtc.qbs
+++ b/qbs/modules/qtc/qtc.qbs
@@ -1,5 +1,6 @@
 import qbs
 import qbs.Environment
+import "qtc.js" as HelperFunctions
 
 Module {
     property string ide_version_major: '4'
@@ -46,6 +47,12 @@ Module {
     property string ide_doc_path: qbs.targetOS.contains("osx")
             ? ide_data_path + "/doc"
             : "share/doc/qtcreator"
+    property string ide_include_path: "include"
+    property string ide_qbs_resources_path: "qbs-resources"
+    property string ide_qbs_modules_path: ide_qbs_resources_path + "/modules"
+    property string ide_qbs_imports_path: ide_qbs_resources_path + "/imports"
+
+    property bool make_dev_package: false
 
     property bool testsEnabled: Environment.getEnv("TEST") || qbs.buildVariant === "debug"
     property stringList generalDefines: [
@@ -54,4 +61,22 @@ Module {
         "QT_NO_CAST_TO_ASCII",
         "QT_RESTRICTED_CAST_FROM_ASCII"
     ].concat(testsEnabled ? ["WITH_TESTS"] : [])
+
+    Rule {
+        condition: make_dev_package
+        inputs: ["dynamiclibrary", "staticlibrary"]
+        Artifact {
+            filePath: product.name + "-module.qbs"
+            fileTags: ["qtc.dev-module"]
+        }
+        prepare: {
+            var cmd = new JavaScriptCommand();
+            cmd.description = "Creating " + output.fileName;
+            cmd.sourceCode = function() {
+                var dependsItems = HelperFunctions.getDependsItems(product);
+                HelperFunctions.writeModuleFile(product, input, output, dependsItems);
+            };
+            return [cmd];
+        }
+    }
 }
diff --git a/qtcreator.qbs b/qtcreator.qbs
index c481bb1685731dd51394b186fe2211a841d845d4..c6cfdb9e40f29853e39cf7a62c6fc2e9721b52c1 100644
--- a/qtcreator.qbs
+++ b/qtcreator.qbs
@@ -23,6 +23,18 @@ Project {
         "tests/tests.qbs"
     ]
 
+    Product {
+        name: "qbs_imports_modules"
+        Depends { name: "qtc" }
+        Group {
+            prefix: "qbs/"
+            files: ["**/*"]
+            qbs.install: qtc.make_dev_package
+            qbs.installDir: qtc.ide_qbs_resources_path
+            qbs.installSourceBase: "qbs"
+        }
+    }
+
     AutotestRunner {
         Depends { name: "Qt.core" }
         Depends { name: "qtc" }
diff --git a/src/libs/aggregation/aggregation.qbs b/src/libs/aggregation/aggregation.qbs
index ddddd99fb381fe4eae9f5cec32427b00297aa346..96a4994d4f81ed66a9ca162f7603592be03d3375 100644
--- a/src/libs/aggregation/aggregation.qbs
+++ b/src/libs/aggregation/aggregation.qbs
@@ -1,14 +1,19 @@
 import qbs 1.0
 
-QtcLibrary {
+Project {
     name: "Aggregation"
 
-    Depends { name: "Qt.core" }
-    cpp.defines: base.concat("AGGREGATION_LIBRARY")
+    QtcDevHeaders { }
 
-    files: [
-        "aggregate.cpp",
-        "aggregate.h",
-        "aggregation_global.h",
-    ]
+    QtcLibrary {
+        Depends { name: "Qt.core" }
+        cpp.defines: base.concat("AGGREGATION_LIBRARY")
+
+        files: [
+            "aggregate.cpp",
+            "aggregate.h",
+            "aggregation_global.h",
+        ]
+    }
 }
+
diff --git a/src/libs/extensionsystem/extensionsystem.qbs b/src/libs/extensionsystem/extensionsystem.qbs
index 05b8051b7fd23f1b111d4dc51c5aeec3521585e1..003c591e7b907216e4456faa003d283b6d7c2db1 100644
--- a/src/libs/extensionsystem/extensionsystem.qbs
+++ b/src/libs/extensionsystem/extensionsystem.qbs
@@ -1,52 +1,56 @@
 import qbs 1.0
 
-QtcLibrary {
+Project {
     name: "ExtensionSystem"
 
-    cpp.defines: base.concat([
-        "EXTENSIONSYSTEM_LIBRARY",
-        "IDE_TEST_DIR=\".\""
-    ])
+    QtcDevHeaders { }
 
-    Depends { name: "Qt"; submodules: ["core", "widgets"] }
-    Depends { name: "Aggregation" }
-    Depends { name: "Utils" }
+    QtcLibrary {
+        cpp.defines: base.concat([
+            "EXTENSIONSYSTEM_LIBRARY",
+            "IDE_TEST_DIR=\".\""
+        ])
 
-    files: [
-        "extensionsystem_global.h",
-        "invoker.cpp",
-        "invoker.h",
-        "iplugin.cpp",
-        "iplugin.h",
-        "iplugin_p.h",
-        "optionsparser.cpp",
-        "optionsparser.h",
-        "plugincollection.cpp",
-        "plugincollection.h",
-        "plugindetailsview.cpp",
-        "plugindetailsview.h",
-        "plugindetailsview.ui",
-        "pluginerroroverview.cpp",
-        "pluginerroroverview.h",
-        "pluginerroroverview.ui",
-        "pluginerrorview.cpp",
-        "pluginerrorview.h",
-        "pluginerrorview.ui",
-        "pluginmanager.cpp",
-        "pluginmanager.h",
-        "pluginmanager_p.h",
-        "pluginspec.cpp",
-        "pluginspec.h",
-        "pluginspec_p.h",
-        "pluginview.cpp",
-        "pluginview.h",
-        "pluginview.qrc",
-        "images/error.png",
-        "images/notloaded.png",
-        "images/ok.png",
-    ]
+        Depends { name: "Qt"; submodules: ["core", "widgets"] }
+        Depends { name: "Aggregation" }
+        Depends { name: "Utils" }
 
-    Export {
-        Depends { name: "Qt.core" }
+        files: [
+            "extensionsystem_global.h",
+            "invoker.cpp",
+            "invoker.h",
+            "iplugin.cpp",
+            "iplugin.h",
+            "iplugin_p.h",
+            "optionsparser.cpp",
+            "optionsparser.h",
+            "plugincollection.cpp",
+            "plugincollection.h",
+            "plugindetailsview.cpp",
+            "plugindetailsview.h",
+            "plugindetailsview.ui",
+            "pluginerroroverview.cpp",
+            "pluginerroroverview.h",
+            "pluginerroroverview.ui",
+            "pluginerrorview.cpp",
+            "pluginerrorview.h",
+            "pluginerrorview.ui",
+            "pluginmanager.cpp",
+            "pluginmanager.h",
+            "pluginmanager_p.h",
+            "pluginspec.cpp",
+            "pluginspec.h",
+            "pluginspec_p.h",
+            "pluginview.cpp",
+            "pluginview.h",
+            "pluginview.qrc",
+            "images/error.png",
+            "images/notloaded.png",
+            "images/ok.png",
+        ]
+
+        Export {
+            Depends { name: "Qt.core" }
+        }
     }
 }
diff --git a/src/libs/qmldebug/qmldebug.qbs b/src/libs/qmldebug/qmldebug.qbs
index 457a97a09bb27fbaa999528af30c86a4497f72eb..f47d2c66b2a33cf7e027f6622796e16f3f4d6f14 100644
--- a/src/libs/qmldebug/qmldebug.qbs
+++ b/src/libs/qmldebug/qmldebug.qbs
@@ -1,39 +1,42 @@
 import qbs 1.0
 
-QtcLibrary {
+Project {
     name: "QmlDebug"
 
-    cpp.defines: base.concat("QMLDEBUG_LIB")
+    QtcDevHeaders { }
 
-    Depends { name: "Qt"; submodules: ["gui", "network"] }
-    Depends { name: "Utils" }
+    QtcLibrary {
+        cpp.defines: base.concat("QMLDEBUG_LIB")
 
-    files: [
-        "baseenginedebugclient.cpp",
-        "baseenginedebugclient.h",
-        "basetoolsclient.cpp",
-        "basetoolsclient.h",
-        "declarativeenginedebugclient.cpp",
-        "declarativeenginedebugclient.h",
-        "declarativeenginedebugclientv2.h",
-        "declarativetoolsclient.cpp",
-        "declarativetoolsclient.h",
-        "qdebugmessageclient.cpp",
-        "qdebugmessageclient.h",
-        "qmldebug_global.h",
-        "qmldebugclient.cpp",
-        "qmldebugclient.h",
-        "qmldebugcommandlinearguments.h",
-        "qmldebugconstants.h",
-        "qmlenginecontrolclient.cpp",
-        "qmlenginecontrolclient.h",
-        "qmlenginedebugclient.h",
-        "qmloutputparser.cpp",
-        "qmloutputparser.h",
-        "qmltoolsclient.cpp",
-        "qmltoolsclient.h",
-        "qpacketprotocol.cpp",
-        "qpacketprotocol.h",
-    ]
-}
+        Depends { name: "Qt"; submodules: ["gui", "network"] }
+        Depends { name: "Utils" }
 
+        files: [
+            "baseenginedebugclient.cpp",
+            "baseenginedebugclient.h",
+            "basetoolsclient.cpp",
+            "basetoolsclient.h",
+            "declarativeenginedebugclient.cpp",
+            "declarativeenginedebugclient.h",
+            "declarativeenginedebugclientv2.h",
+            "declarativetoolsclient.cpp",
+            "declarativetoolsclient.h",
+            "qdebugmessageclient.cpp",
+            "qdebugmessageclient.h",
+            "qmldebug_global.h",
+            "qmldebugclient.cpp",
+            "qmldebugclient.h",
+            "qmldebugcommandlinearguments.h",
+            "qmldebugconstants.h",
+            "qmlenginecontrolclient.cpp",
+            "qmlenginecontrolclient.h",
+            "qmlenginedebugclient.h",
+            "qmloutputparser.cpp",
+            "qmloutputparser.h",
+            "qmltoolsclient.cpp",
+            "qmltoolsclient.h",
+            "qpacketprotocol.cpp",
+            "qpacketprotocol.h",
+        ]
+    }
+}
diff --git a/src/libs/ssh/ssh.qbs b/src/libs/ssh/ssh.qbs
index 0ac3fefb510e3ea87ca2bcbe269f0fb6692a3952..e3ef0cf3f531f812116931e7998a1479003ce73d 100644
--- a/src/libs/ssh/ssh.qbs
+++ b/src/libs/ssh/ssh.qbs
@@ -1,130 +1,134 @@
 import qbs 1.0
 import qbs.Environment
 
-QtcLibrary {
+Project {
     name: "QtcSsh"
 
-    cpp.defines: base.concat(["QSSH_LIBRARY"]).concat(botanDefines)
-    cpp.includePaths: botanIncludes
-    cpp.dynamicLibraries: botanLibs
-    cpp.enableExceptions: true
+    QtcDevHeaders { }
 
-    Depends { name: "Qt"; submodules: ["widgets", "network" ] }
+    QtcLibrary {
+        cpp.defines: base.concat(["QSSH_LIBRARY"]).concat(botanDefines)
+        cpp.includePaths: botanIncludes
+        cpp.dynamicLibraries: botanLibs
+        cpp.enableExceptions: true
 
-    files: [
-        "sftpchannel.h", "sftpchannel_p.h", "sftpchannel.cpp",
-        "sftpdefs.cpp", "sftpdefs.h",
-        "sftpfilesystemmodel.cpp", "sftpfilesystemmodel.h",
-        "sftpincomingpacket.cpp", "sftpincomingpacket_p.h",
-        "sftpoperation.cpp", "sftpoperation_p.h",
-        "sftpoutgoingpacket.cpp", "sftpoutgoingpacket_p.h",
-        "sftppacket.cpp", "sftppacket_p.h",
-        "sshbotanconversions_p.h",
-        "sshcapabilities_p.h", "sshcapabilities.cpp",
-        "sshchannel.cpp", "sshchannel_p.h",
-        "sshchannelmanager.cpp", "sshchannelmanager_p.h",
-        "sshconnection.h", "sshconnection_p.h", "sshconnection.cpp",
-        "sshconnectionmanager.cpp", "sshconnectionmanager.h",
-        "sshcryptofacility.cpp", "sshcryptofacility_p.h",
-        "sshdirecttcpiptunnel.h", "sshdirecttcpiptunnel_p.h", "sshdirecttcpiptunnel.cpp",
-        "ssherrors.h",
-        "sshexception_p.h",
-        "sshforwardedtcpiptunnel.cpp", "sshforwardedtcpiptunnel.h", "sshforwardedtcpiptunnel_p.h",
-        "sshhostkeydatabase.cpp",
-        "sshhostkeydatabase.h",
-        "sshincomingpacket_p.h", "sshincomingpacket.cpp",
-        "sshinit_p.h", "sshinit.cpp",
-        "sshkeycreationdialog.cpp", "sshkeycreationdialog.h", "sshkeycreationdialog.ui",
-        "sshkeyexchange.cpp", "sshkeyexchange_p.h",
-        "sshkeygenerator.cpp", "sshkeygenerator.h",
-        "sshkeypasswordretriever.cpp",
-        "sshkeypasswordretriever_p.h",
-        "sshlogging.cpp", "sshlogging_p.h",
-        "sshoutgoingpacket.cpp", "sshoutgoingpacket_p.h",
-        "sshpacket.cpp", "sshpacket_p.h",
-        "sshpacketparser.cpp", "sshpacketparser_p.h",
-        "sshpseudoterminal.h",
-        "sshremoteprocess.cpp", "sshremoteprocess.h", "sshremoteprocess_p.h",
-        "sshremoteprocessrunner.cpp", "sshremoteprocessrunner.h",
-        "sshsendfacility.cpp", "sshsendfacility_p.h",
-        "sshtcpipforwardserver.cpp", "sshtcpipforwardserver.h", "sshtcpipforwardserver_p.h",
-        "sshtcpiptunnel.cpp", "sshtcpiptunnel_p.h",
-    ].concat(botanFiles)
+        Depends { name: "Qt"; submodules: ["widgets", "network" ] }
 
-    property var useSystemBotan: Environment.getEnv("USE_SYSTEM_BOTAN") === "1"
-    property var botanIncludes: {
-        var result = ["../3rdparty"];
-        if (useSystemBotan)
-            result.push("/usr/include/botan-1.10")
-        return result
-    }
-    property var botanLibs: {
-        var result = [];
-        if (useSystemBotan)
-            result.push("botan-1.10")
-        if (qbs.targetOS.contains("windows"))
-            result.push("advapi32", "user32")
-        else if (qbs.targetOS.contains("linux"))
-            result.push("rt", "dl");
-        else if (qbs.targetOS.contains("osx"))
-            result.push("dl");
-        else if (qbs.targetOS.contains("unix"))
-            result.push("rt");
-        return result
-    }
-    property var botanDefines: {
-        var result = [];
-        if (useSystemBotan) {
-            result.push("USE_SYSTEM_BOTAN")
-        } else {
-            result.push("BOTAN_DLL=")
-            if (qbs.toolchain.contains("msvc"))
-                result.push("BOTAN_BUILD_COMPILER_IS_MSVC",
-                            "BOTAN_TARGET_OS_HAS_GMTIME_S",
-                            "_SCL_SECURE_NO_WARNINGS")
-            if (qbs.toolchain.contains("gcc") || qbs.toolchain.contains("mingw"))
-                result.push("BOTAN_BUILD_COMPILER_IS_GCC")
-            if (qbs.targetOS.contains("linux"))
-                result.push("BOTAN_TARGET_OS_IS_LINUX", "BOTAN_TARGET_OS_HAS_CLOCK_GETTIME",
-                            "BOTAN_TARGET_OS_HAS_DLOPEN", " BOTAN_TARGET_OS_HAS_GMTIME_R",
-                            "BOTAN_TARGET_OS_HAS_POSIX_MLOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
-                            "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
-                            "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
-                            "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
-                            "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
-            if (qbs.targetOS.contains("osx"))
-                result.push("BOTAN_TARGET_OS_IS_DARWIN", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
-                            "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
-                            "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
-                            "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
+        files: [
+            "sftpchannel.h", "sftpchannel_p.h", "sftpchannel.cpp",
+            "sftpdefs.cpp", "sftpdefs.h",
+            "sftpfilesystemmodel.cpp", "sftpfilesystemmodel.h",
+            "sftpincomingpacket.cpp", "sftpincomingpacket_p.h",
+            "sftpoperation.cpp", "sftpoperation_p.h",
+            "sftpoutgoingpacket.cpp", "sftpoutgoingpacket_p.h",
+            "sftppacket.cpp", "sftppacket_p.h",
+            "sshbotanconversions_p.h",
+            "sshcapabilities_p.h", "sshcapabilities.cpp",
+            "sshchannel.cpp", "sshchannel_p.h",
+            "sshchannelmanager.cpp", "sshchannelmanager_p.h",
+            "sshconnection.h", "sshconnection_p.h", "sshconnection.cpp",
+            "sshconnectionmanager.cpp", "sshconnectionmanager.h",
+            "sshcryptofacility.cpp", "sshcryptofacility_p.h",
+            "sshdirecttcpiptunnel.h", "sshdirecttcpiptunnel_p.h", "sshdirecttcpiptunnel.cpp",
+            "ssherrors.h",
+            "sshexception_p.h",
+            "sshforwardedtcpiptunnel.cpp", "sshforwardedtcpiptunnel.h", "sshforwardedtcpiptunnel_p.h",
+            "sshhostkeydatabase.cpp",
+            "sshhostkeydatabase.h",
+            "sshincomingpacket_p.h", "sshincomingpacket.cpp",
+            "sshinit_p.h", "sshinit.cpp",
+            "sshkeycreationdialog.cpp", "sshkeycreationdialog.h", "sshkeycreationdialog.ui",
+            "sshkeyexchange.cpp", "sshkeyexchange_p.h",
+            "sshkeygenerator.cpp", "sshkeygenerator.h",
+            "sshkeypasswordretriever.cpp",
+            "sshkeypasswordretriever_p.h",
+            "sshlogging.cpp", "sshlogging_p.h",
+            "sshoutgoingpacket.cpp", "sshoutgoingpacket_p.h",
+            "sshpacket.cpp", "sshpacket_p.h",
+            "sshpacketparser.cpp", "sshpacketparser_p.h",
+            "sshpseudoterminal.h",
+            "sshremoteprocess.cpp", "sshremoteprocess.h", "sshremoteprocess_p.h",
+            "sshremoteprocessrunner.cpp", "sshremoteprocessrunner.h",
+            "sshsendfacility.cpp", "sshsendfacility_p.h",
+            "sshtcpipforwardserver.cpp", "sshtcpipforwardserver.h", "sshtcpipforwardserver_p.h",
+            "sshtcpiptunnel.cpp", "sshtcpiptunnel_p.h",
+        ].concat(botanFiles)
+
+        property var useSystemBotan: Environment.getEnv("USE_SYSTEM_BOTAN") === "1"
+        property var botanIncludes: {
+            var result = ["../3rdparty"];
+            if (useSystemBotan)
+                result.push("/usr/include/botan-1.10")
+            return result
+        }
+        property var botanLibs: {
+            var result = [];
+            if (useSystemBotan)
+                result.push("botan-1.10")
             if (qbs.targetOS.contains("windows"))
-                result.push("BOTAN_TARGET_OS_IS_WINDOWS",
-                            "BOTAN_TARGET_OS_HAS_LOADLIBRARY", "BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME",
-                            "BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
-                            "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI",
-                            "BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32")
+                result.push("advapi32", "user32")
+            else if (qbs.targetOS.contains("linux"))
+                result.push("rt", "dl");
+            else if (qbs.targetOS.contains("osx"))
+                result.push("dl");
+            else if (qbs.targetOS.contains("unix"))
+                result.push("rt");
+            return result
+        }
+        property var botanDefines: {
+            var result = [];
+            if (useSystemBotan) {
+                result.push("USE_SYSTEM_BOTAN")
+            } else {
+                result.push("BOTAN_DLL=")
+                if (qbs.toolchain.contains("msvc"))
+                    result.push("BOTAN_BUILD_COMPILER_IS_MSVC",
+                                "BOTAN_TARGET_OS_HAS_GMTIME_S",
+                                "_SCL_SECURE_NO_WARNINGS")
+                if (qbs.toolchain.contains("gcc") || qbs.toolchain.contains("mingw"))
+                    result.push("BOTAN_BUILD_COMPILER_IS_GCC")
+                if (qbs.targetOS.contains("linux"))
+                    result.push("BOTAN_TARGET_OS_IS_LINUX", "BOTAN_TARGET_OS_HAS_CLOCK_GETTIME",
+                                "BOTAN_TARGET_OS_HAS_DLOPEN", " BOTAN_TARGET_OS_HAS_GMTIME_R",
+                                "BOTAN_TARGET_OS_HAS_POSIX_MLOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
+                                "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
+                                "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
+                                "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
+                                "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
+                if (qbs.targetOS.contains("osx"))
+                    result.push("BOTAN_TARGET_OS_IS_DARWIN", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
+                                "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
+                                "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
+                                "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
+                if (qbs.targetOS.contains("windows"))
+                    result.push("BOTAN_TARGET_OS_IS_WINDOWS",
+                                "BOTAN_TARGET_OS_HAS_LOADLIBRARY", "BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME",
+                                "BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
+                                "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI",
+                                "BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32")
+            }
+            return result
+        }
+        property var botanFiles: {
+            var result = ["../3rdparty/botan/botan.h"];
+            if (!useSystemBotan)
+                result.push("../3rdparty/botan/botan.cpp")
+            return result
         }
-        return result
-    }
-    property var botanFiles: {
-        var result = ["../3rdparty/botan/botan.h"];
-        if (!useSystemBotan)
-            result.push("../3rdparty/botan/botan.cpp")
-        return result
-    }
 
-    // For Botan.
-    Properties {
-        condition: qbs.toolchain.contains("mingw")
-        cpp.cxxFlags: base.concat([
-            "-fpermissive",
-            "-finline-functions",
-            "-Wno-long-long"
-        ])
-    }
-    cpp.cxxFlags: base
+        // For Botan.
+        Properties {
+            condition: qbs.toolchain.contains("mingw")
+            cpp.cxxFlags: base.concat([
+                "-fpermissive",
+                "-finline-functions",
+                "-Wno-long-long"
+            ])
+        }
+        cpp.cxxFlags: base
 
-    Export {
-        Depends { name: "Qt"; submodules: ["widgets", "network"] }
+        Export {
+            Depends { name: "Qt"; submodules: ["widgets", "network"] }
+        }
     }
 }
diff --git a/src/libs/timeline/timeline.qbs b/src/libs/timeline/timeline.qbs
index 19ba995612dd16b3963dab596208f52a6e185d7b..8474db9eb82b0fc4f4294987e164fcf5a0e43842 100644
--- a/src/libs/timeline/timeline.qbs
+++ b/src/libs/timeline/timeline.qbs
@@ -2,38 +2,42 @@ import qbs 1.0
 
 import QtcLibrary
 
-QtcLibrary {
+Project {
     name: "Timeline"
 
-    Depends { name: "Qt"; submodules: ["qml", "quick", "gui"] }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Group {
-        name: "General"
-        files: [
-            "README",
-            "timelineabstractrenderer.cpp", "timelineabstractrenderer.h",
-            "timelineabstractrenderer_p.h",
-            "timelineitemsrenderpass.cpp", "timelineitemsrenderpass.h",
-            "timelinemodel.cpp", "timelinemodel.h", "timelinemodel_p.h",
-            "timelinemodelaggregator.cpp", "timelinemodelaggregator.h",
-            "timelinenotesmodel.cpp", "timelinenotesmodel.h", "timelinenotesmodel_p.h",
-            "timelinenotesrenderpass.cpp", "timelinenotesrenderpass.h",
-            "timelineoverviewrenderer.cpp", "timelineoverviewrenderer.h",
-            "timelineoverviewrenderer_p.h",
-            "timelinerenderer.cpp", "timelinerenderer.h", "timelinerenderer_p.h",
-            "timelinerenderpass.cpp", "timelinerenderpass.h",
-            "timelinerenderstate.cpp", "timelinerenderstate.h", "timelinerenderstate_p.h",
-            "timelineselectionrenderpass.cpp", "timelineselectionrenderpass.h",
-            "timelinezoomcontrol.cpp", "timelinezoomcontrol.h"
-        ]
-    }
+    QtcLibrary {
+        Depends { name: "Qt"; submodules: ["qml", "quick", "gui"] }
+        Depends { name: "Utils" }
 
-    Group {
-        name: "QML"
-        prefix: "qml/"
-        files: ["timeline.qrc"]
-    }
+        Group {
+            name: "General"
+            files: [
+                "README",
+                "timelineabstractrenderer.cpp", "timelineabstractrenderer.h",
+                "timelineabstractrenderer_p.h",
+                "timelineitemsrenderpass.cpp", "timelineitemsrenderpass.h",
+                "timelinemodel.cpp", "timelinemodel.h", "timelinemodel_p.h",
+                "timelinemodelaggregator.cpp", "timelinemodelaggregator.h",
+                "timelinenotesmodel.cpp", "timelinenotesmodel.h", "timelinenotesmodel_p.h",
+                "timelinenotesrenderpass.cpp", "timelinenotesrenderpass.h",
+                "timelineoverviewrenderer.cpp", "timelineoverviewrenderer.h",
+                "timelineoverviewrenderer_p.h",
+                "timelinerenderer.cpp", "timelinerenderer.h", "timelinerenderer_p.h",
+                "timelinerenderpass.cpp", "timelinerenderpass.h",
+                "timelinerenderstate.cpp", "timelinerenderstate.h", "timelinerenderstate_p.h",
+                "timelineselectionrenderpass.cpp", "timelineselectionrenderpass.h",
+                "timelinezoomcontrol.cpp", "timelinezoomcontrol.h"
+            ]
+        }
 
-    cpp.defines: base.concat("TIMELINE_LIBRARY")
+        Group {
+            name: "QML"
+            prefix: "qml/"
+            files: ["timeline.qrc"]
+        }
+
+        cpp.defines: base.concat("TIMELINE_LIBRARY")
+    }
 }
diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs
index b1050be76ac4c204d10f66a191725f6207131a20..237e74080df6309492f7c61d83a7e9c3d2f1c6c2 100644
--- a/src/libs/utils/utils.qbs
+++ b/src/libs/utils/utils.qbs
@@ -1,308 +1,312 @@
 import qbs 1.0
 import qbs.FileInfo
 
-QtcLibrary {
+Project {
     name: "Utils"
 
-    cpp.defines: base.concat([
-        "QTCREATOR_UTILS_LIB",
-        "QTC_REL_TOOLS_PATH=\"" + FileInfo.relativePath('/' + qtc.ide_bin_path,
-                                                        '/' + qtc.ide_libexec_path) + "\""
-    ])
-    cpp.dynamicLibraries: {
-        var libs = [];
-        if (qbs.targetOS.contains("windows")) {
-            libs.push("user32", "iphlpapi", "ws2_32", "shell32");
-        } else if (qbs.targetOS.contains("unix")) {
-            if (!qbs.targetOS.contains("osx"))
-                libs.push("X11");
-            if (!qbs.targetOS.contains("openbsd"))
-                libs.push("pthread");
-        }
-        return libs;
-    }
+    QtcDevHeaders { }
 
-    cpp.enableExceptions: true
+    QtcLibrary {
 
-    Properties {
-        condition: qbs.targetOS.contains("osx")
-        cpp.frameworks: ["Foundation"]
-    }
+        cpp.defines: base.concat([
+            "QTCREATOR_UTILS_LIB",
+            "QTC_REL_TOOLS_PATH=\"" + FileInfo.relativePath('/' + qtc.ide_bin_path,
+                                                            '/' + qtc.ide_libexec_path) + "\""
+        ])
+        cpp.dynamicLibraries: {
+            var libs = [];
+            if (qbs.targetOS.contains("windows")) {
+                libs.push("user32", "iphlpapi", "ws2_32", "shell32");
+            } else if (qbs.targetOS.contains("unix")) {
+                if (!qbs.targetOS.contains("osx"))
+                    libs.push("X11");
+                if (!qbs.targetOS.contains("openbsd"))
+                    libs.push("pthread");
+            }
+            return libs;
+        }
 
-    Depends { name: "Qt"; submodules: ["concurrent", "network", "qml", "widgets"] }
-    Depends { name: "app_version_header" }
+        cpp.enableExceptions: true
 
-    files: [
-        "QtConcurrentTools",
-        "algorithm.h",
-        "annotateditemdelegate.cpp",
-        "annotateditemdelegate.h",
-        "ansiescapecodehandler.cpp",
-        "ansiescapecodehandler.h",
-        "appmainwindow.cpp",
-        "appmainwindow.h",
-        "basetreeview.cpp",
-        "basetreeview.h",
-        "bracematcher.cpp",
-        "bracematcher.h",
-        "buildablehelperlibrary.cpp",
-        "buildablehelperlibrary.h",
-        "categorysortfiltermodel.cpp",
-        "categorysortfiltermodel.h",
-        "changeset.cpp",
-        "changeset.h",
-        "checkablemessagebox.cpp",
-        "checkablemessagebox.h",
-        "classnamevalidatinglineedit.cpp",
-        "classnamevalidatinglineedit.h",
-        "codegeneration.cpp",
-        "codegeneration.h",
-        "completinglineedit.cpp",
-        "completinglineedit.h",
-        "completingtextedit.cpp",
-        "completingtextedit.h",
-        "consoleprocess.cpp",
-        "consoleprocess.h",
-        "consoleprocess_p.h",
-        "crumblepath.cpp",
-        "crumblepath.h",
-        "declarationmacros.h",
-        "detailsbutton.cpp",
-        "detailsbutton.h",
-        "detailswidget.cpp",
-        "detailswidget.h",
-        "dropsupport.cpp",
-        "dropsupport.h",
-        "elfreader.cpp",
-        "elfreader.h",
-        "elidinglabel.cpp",
-        "elidinglabel.h",
-        "environment.cpp",
-        "environment.h",
-        "environmentmodel.cpp",
-        "environmentmodel.h",
-        "execmenu.cpp",
-        "execmenu.h",
-        "executeondestruction.h",
-        "fadingindicator.cpp",
-        "fadingindicator.h",
-        "faketooltip.cpp",
-        "faketooltip.h",
-        "fancylineedit.cpp",
-        "fancylineedit.h",
-        "fancymainwindow.cpp",
-        "fancymainwindow.h",
-        "fileinprojectfinder.cpp",
-        "fileinprojectfinder.h",
-        "filenamevalidatinglineedit.cpp",
-        "filenamevalidatinglineedit.h",
-        "filesearch.cpp",
-        "filesearch.h",
-        "filesystemwatcher.cpp",
-        "filesystemwatcher.h",
-        "fileutils.cpp",
-        "fileutils.h",
-        "filewizardpage.cpp",
-        "filewizardpage.h",
-        "filewizardpage.ui",
-        "flowlayout.cpp",
-        "flowlayout.h",
-        "functiontraits.h",
-        "historycompleter.cpp",
-        "historycompleter.h",
-        "hostosinfo.h",
-        "hostosinfo.cpp",
-        "htmldocextractor.cpp",
-        "htmldocextractor.h",
-        "icon.cpp",
-        "icon.h",
-        "itemviews.cpp",
-        "itemviews.h",
-        "json.cpp",
-        "json.h",
-        "linecolumnlabel.cpp",
-        "linecolumnlabel.h",
-        "listutils.h",
-        "macroexpander.cpp",
-        "macroexpander.h",
-        "mapreduce.h",
-        "navigationtreeview.cpp",
-        "navigationtreeview.h",
-        "networkaccessmanager.cpp",
-        "networkaccessmanager.h",
-        "newclasswidget.cpp",
-        "newclasswidget.h",
-        "newclasswidget.ui",
-        "osspecificaspects.h",
-        "outputformat.h",
-        "outputformatter.cpp",
-        "outputformatter.h",
-        "overridecursor.cpp",
-        "overridecursor.h",
-        "parameteraction.cpp",
-        "parameteraction.h",
-        "pathchooser.cpp",
-        "pathchooser.h",
-        "pathlisteditor.cpp",
-        "pathlisteditor.h",
-        "persistentsettings.cpp",
-        "persistentsettings.h",
-        "port.cpp",
-        "port.h",
-        "portlist.cpp",
-        "portlist.h",
-        "progressindicator.cpp",
-        "progressindicator.h",
-        "projectintropage.cpp",
-        "projectintropage.h",
-        "projectintropage.ui",
-        "proxyaction.cpp",
-        "proxyaction.h",
-        "proxycredentialsdialog.cpp",
-        "proxycredentialsdialog.h",
-        "proxycredentialsdialog.ui",
-        "qtcassert.cpp",
-        "qtcassert.h",
-        "qtcolorbutton.cpp",
-        "qtcolorbutton.h",
-        "qtcprocess.cpp",
-        "qtcprocess.h",
-        "reloadpromptutils.cpp",
-        "reloadpromptutils.h",
-        "runextensions.cpp",
-        "runextensions.h",
-        "savedaction.cpp",
-        "savedaction.h",
-        "savefile.cpp",
-        "savefile.h",
-        "scopedswap.h",
-        "settingsselector.cpp",
-        "settingsselector.h",
-        "settingsutils.h",
-        "shellcommand.cpp",
-        "shellcommand.h",
-        "shellcommandpage.cpp",
-        "shellcommandpage.h",
-        "sizedarray.h",
-        "sleep.cpp",
-        "sleep.h",
-        "smallstring.h",
-        "smallstringiterator.h",
-        "smallstringliteral.h",
-        "smallstringlayout.h",
-        "smallstringmemory.h",
-        "smallstringvector.h",
-        "statuslabel.cpp",
-        "statuslabel.h",
-        "stringutils.cpp",
-        "stringutils.h",
-        "styledbar.cpp",
-        "styledbar.h",
-        "stylehelper.cpp",
-        "stylehelper.h",
-        "synchronousprocess.cpp",
-        "synchronousprocess.h",
-        "templateengine.cpp",
-        "templateengine.h",
-        "textfieldcheckbox.cpp",
-        "textfieldcheckbox.h",
-        "textfieldcombobox.cpp",
-        "textfieldcombobox.h",
-        "textfileformat.cpp",
-        "textfileformat.h",
-        "treemodel.cpp",
-        "treemodel.h",
-        "treeviewcombobox.cpp",
-        "treeviewcombobox.h",
-        "headerviewstretcher.cpp",
-        "headerviewstretcher.h",
-        "uncommentselection.cpp",
-        "uncommentselection.h",
-        "unixutils.cpp",
-        "unixutils.h",
-        "utils.qrc",
-        "utils_global.h",
-        "winutils.cpp",
-        "winutils.h",
-        "wizard.cpp",
-        "wizard.h",
-        "wizardpage.cpp",
-        "wizardpage.h",
-        "images/*.png",
-    ]
+        Properties {
+            condition: qbs.targetOS.contains("osx")
+            cpp.frameworks: ["Foundation"]
+        }
 
-    Group {
-        name: "Theme"
-        prefix: "theme/"
-        files: [
-            "theme.cpp",
-            "theme.h",
-            "theme_p.h",
-        ]
-    }
+        Depends { name: "Qt"; submodules: ["concurrent", "network", "qml", "widgets"] }
+        Depends { name: "app_version_header" }
 
-    Group {
-        name: "Tooltip"
-        prefix: "tooltip/"
         files: [
-            "effects.h",
-            "reuse.h",
-            "tips.cpp",
-            "tips.h",
-            "tooltip.cpp",
-            "tooltip.h",
+            "QtConcurrentTools",
+            "algorithm.h",
+            "annotateditemdelegate.cpp",
+            "annotateditemdelegate.h",
+            "ansiescapecodehandler.cpp",
+            "ansiescapecodehandler.h",
+            "appmainwindow.cpp",
+            "appmainwindow.h",
+            "basetreeview.cpp",
+            "basetreeview.h",
+            "bracematcher.cpp",
+            "bracematcher.h",
+            "buildablehelperlibrary.cpp",
+            "buildablehelperlibrary.h",
+            "categorysortfiltermodel.cpp",
+            "categorysortfiltermodel.h",
+            "changeset.cpp",
+            "changeset.h",
+            "checkablemessagebox.cpp",
+            "checkablemessagebox.h",
+            "classnamevalidatinglineedit.cpp",
+            "classnamevalidatinglineedit.h",
+            "codegeneration.cpp",
+            "codegeneration.h",
+            "completinglineedit.cpp",
+            "completinglineedit.h",
+            "completingtextedit.cpp",
+            "completingtextedit.h",
+            "consoleprocess.cpp",
+            "consoleprocess.h",
+            "consoleprocess_p.h",
+            "crumblepath.cpp",
+            "crumblepath.h",
+            "declarationmacros.h",
+            "detailsbutton.cpp",
+            "detailsbutton.h",
+            "detailswidget.cpp",
+            "detailswidget.h",
+            "dropsupport.cpp",
+            "dropsupport.h",
+            "elfreader.cpp",
+            "elfreader.h",
+            "elidinglabel.cpp",
+            "elidinglabel.h",
+            "environment.cpp",
+            "environment.h",
+            "environmentmodel.cpp",
+            "environmentmodel.h",
+            "execmenu.cpp",
+            "execmenu.h",
+            "executeondestruction.h",
+            "fadingindicator.cpp",
+            "fadingindicator.h",
+            "faketooltip.cpp",
+            "faketooltip.h",
+            "fancylineedit.cpp",
+            "fancylineedit.h",
+            "fancymainwindow.cpp",
+            "fancymainwindow.h",
+            "fileinprojectfinder.cpp",
+            "fileinprojectfinder.h",
+            "filenamevalidatinglineedit.cpp",
+            "filenamevalidatinglineedit.h",
+            "filesearch.cpp",
+            "filesearch.h",
+            "filesystemwatcher.cpp",
+            "filesystemwatcher.h",
+            "fileutils.cpp",
+            "fileutils.h",
+            "filewizardpage.cpp",
+            "filewizardpage.h",
+            "filewizardpage.ui",
+            "flowlayout.cpp",
+            "flowlayout.h",
+            "functiontraits.h",
+            "historycompleter.cpp",
+            "historycompleter.h",
+            "hostosinfo.h",
+            "hostosinfo.cpp",
+            "htmldocextractor.cpp",
+            "htmldocextractor.h",
+            "icon.cpp",
+            "icon.h",
+            "itemviews.cpp",
+            "itemviews.h",
+            "json.cpp",
+            "json.h",
+            "linecolumnlabel.cpp",
+            "linecolumnlabel.h",
+            "listutils.h",
+            "macroexpander.cpp",
+            "macroexpander.h",
+            "mapreduce.h",
+            "navigationtreeview.cpp",
+            "navigationtreeview.h",
+            "networkaccessmanager.cpp",
+            "networkaccessmanager.h",
+            "newclasswidget.cpp",
+            "newclasswidget.h",
+            "newclasswidget.ui",
+            "osspecificaspects.h",
+            "outputformat.h",
+            "outputformatter.cpp",
+            "outputformatter.h",
+            "overridecursor.cpp",
+            "overridecursor.h",
+            "parameteraction.cpp",
+            "parameteraction.h",
+            "pathchooser.cpp",
+            "pathchooser.h",
+            "pathlisteditor.cpp",
+            "pathlisteditor.h",
+            "persistentsettings.cpp",
+            "persistentsettings.h",
+            "port.cpp",
+            "port.h",
+            "portlist.cpp",
+            "portlist.h",
+            "progressindicator.cpp",
+            "progressindicator.h",
+            "projectintropage.cpp",
+            "projectintropage.h",
+            "projectintropage.ui",
+            "proxyaction.cpp",
+            "proxyaction.h",
+            "proxycredentialsdialog.cpp",
+            "proxycredentialsdialog.h",
+            "proxycredentialsdialog.ui",
+            "qtcassert.cpp",
+            "qtcassert.h",
+            "qtcolorbutton.cpp",
+            "qtcolorbutton.h",
+            "qtcprocess.cpp",
+            "qtcprocess.h",
+            "reloadpromptutils.cpp",
+            "reloadpromptutils.h",
+            "runextensions.cpp",
+            "runextensions.h",
+            "savedaction.cpp",
+            "savedaction.h",
+            "savefile.cpp",
+            "savefile.h",
+            "scopedswap.h",
+            "settingsselector.cpp",
+            "settingsselector.h",
+            "settingsutils.h",
+            "shellcommand.cpp",
+            "shellcommand.h",
+            "shellcommandpage.cpp",
+            "shellcommandpage.h",
+            "sizedarray.h",
+            "sleep.cpp",
+            "sleep.h",
+            "smallstring.h",
+            "smallstringiterator.h",
+            "smallstringliteral.h",
+            "smallstringlayout.h",
+            "smallstringmemory.h",
+            "smallstringvector.h",
+            "statuslabel.cpp",
+            "statuslabel.h",
+            "stringutils.cpp",
+            "stringutils.h",
+            "styledbar.cpp",
+            "styledbar.h",
+            "stylehelper.cpp",
+            "stylehelper.h",
+            "synchronousprocess.cpp",
+            "synchronousprocess.h",
+            "templateengine.cpp",
+            "templateengine.h",
+            "textfieldcheckbox.cpp",
+            "textfieldcheckbox.h",
+            "textfieldcombobox.cpp",
+            "textfieldcombobox.h",
+            "textfileformat.cpp",
+            "textfileformat.h",
+            "treemodel.cpp",
+            "treemodel.h",
+            "treeviewcombobox.cpp",
+            "treeviewcombobox.h",
+            "headerviewstretcher.cpp",
+            "headerviewstretcher.h",
+            "uncommentselection.cpp",
+            "uncommentselection.h",
+            "unixutils.cpp",
+            "unixutils.h",
+            "utils.qrc",
+            "utils_global.h",
+            "winutils.cpp",
+            "winutils.h",
+            "wizard.cpp",
+            "wizard.h",
+            "wizardpage.cpp",
+            "wizardpage.h",
+            "images/*.png",
         ]
-    }
 
-    Group {
-        name: "WindowsUtils"
-        condition: qbs.targetOS.contains("windows")
-        files: [
-            "consoleprocess_win.cpp",
-        ]
-    }
+        Group {
+            name: "Theme"
+            prefix: "theme/"
+            files: [
+                "theme.cpp",
+                "theme.h",
+                "theme_p.h",
+            ]
+        }
 
-    Group {
-        name: "ConsoleProcess_unix"
-        condition: qbs.targetOS.contains("unix")
-        files: [
-            "consoleprocess_unix.cpp",
-        ]
-    }
+        Group {
+            name: "Tooltip"
+            prefix: "tooltip/"
+            files: [
+                "effects.h",
+                "reuse.h",
+                "tips.cpp",
+                "tips.h",
+                "tooltip.cpp",
+                "tooltip.h",
+            ]
+        }
 
-    Group {
-        name: "FileUtils_osx"
-        condition: qbs.targetOS.contains("osx")
-        files: [
-            "fileutils_mac.h", "fileutils_mac.mm",
-        ]
-    }
+        Group {
+            name: "WindowsUtils"
+            condition: qbs.targetOS.contains("windows")
+            files: [
+                "consoleprocess_win.cpp",
+            ]
+        }
 
-    Group {
-        name: "MimeTypes"
-        prefix: "mimetypes/"
-        files: [
-            "mimedatabase.cpp",
-            "mimedatabase.h",
-            "mimedatabase_p.h",
-            "mimeglobpattern.cpp",
-            "mimeglobpattern_p.h",
-            "mimemagicrule.cpp",
-            "mimemagicrule_p.h",
-            "mimemagicrulematcher.cpp",
-            "mimemagicrulematcher_p.h",
-            "mimeprovider.cpp",
-            "mimeprovider_p.h",
-            "mimetype.cpp",
-            "mimetype.h",
-            "mimetype_p.h",
-            "mimetypeparser.cpp",
-            "mimetypeparser_p.h",
-        ]
-    }
+        Group {
+            name: "ConsoleProcess_unix"
+            condition: qbs.targetOS.contains("unix")
+            files: [
+                "consoleprocess_unix.cpp",
+            ]
+        }
+
+        Group {
+            name: "FileUtils_osx"
+            condition: qbs.targetOS.contains("osx")
+            files: [
+                "fileutils_mac.h", "fileutils_mac.mm",
+            ]
+        }
 
-    Export {
-        Depends { name: "Qt"; submodules: ["concurrent", "widgets" ] }
+        Group {
+            name: "MimeTypes"
+            prefix: "mimetypes/"
+            files: [
+                "mimedatabase.cpp",
+                "mimedatabase.h",
+                "mimedatabase_p.h",
+                "mimeglobpattern.cpp",
+                "mimeglobpattern_p.h",
+                "mimemagicrule.cpp",
+                "mimemagicrule_p.h",
+                "mimemagicrulematcher.cpp",
+                "mimemagicrulematcher_p.h",
+                "mimeprovider.cpp",
+                "mimeprovider_p.h",
+                "mimetype.cpp",
+                "mimetype.h",
+                "mimetype_p.h",
+                "mimetypeparser.cpp",
+                "mimetypeparser_p.h",
+            ]
+        }
+
+        Export {
+            Depends { name: "Qt"; submodules: ["concurrent", "widgets" ] }
+        }
     }
 }
-
diff --git a/src/plugins/android/android.qbs b/src/plugins/android/android.qbs
index fd7636c5f3d1630138052094734cb9f73800384e..1a08abc7646171e90c70081f9134eab9d18aa72b 100644
--- a/src/plugins/android/android.qbs
+++ b/src/plugins/android/android.qbs
@@ -1,104 +1,108 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "Android"
 
-    Depends { name: "Qt"; submodules: ["widgets", "xml", "network"] }
-    Depends { name: "Core" }
-    Depends { name: "Debugger" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "QmlDebug" }
-    Depends { name: "QtSupport" }
-    Depends { name: "TextEditor" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    files: [
-        "android_global.h",
-        "addnewavddialog.ui",
-        "android.qrc",
-        "androidanalyzesupport.cpp",
-        "androidanalyzesupport.h",
-        "androidconfigurations.cpp",
-        "androidconfigurations.h",
-        "androidconstants.h",
-        "androidcreatekeystorecertificate.cpp",
-        "androidcreatekeystorecertificate.h",
-        "androidcreatekeystorecertificate.ui",
-        "androidbuildapkstep.cpp",
-        "androidbuildapkstep.h",
-        "androidbuildapkwidget.cpp",
-        "androidbuildapkwidget.h",
-        "androidbuildapkwidget.ui",
-        "androiddeployqtstep.cpp",
-        "androiddeployqtstep.h",
-        "androiddebugsupport.cpp",
-        "androiddebugsupport.h",
-        "androiddevicedialog.cpp",
-        "androiddevicedialog.h",
-        "androiddevicedialog.ui",
-        "androiddeployconfiguration.cpp",
-        "androiddeployconfiguration.h",
-        "androiddeployqtwidget.cpp",
-        "androiddeployqtwidget.h",
-        "androiddeployqtwidget.ui",
-        "androiddevice.cpp",
-        "androiddevice.h",
-        "androiddevicefactory.cpp",
-        "androiddevicefactory.h",
-        "androiderrormessage.h",
-        "androiderrormessage.cpp",
-        "androidgdbserverkitinformation.cpp",
-        "androidgdbserverkitinformation.h",
-        "androidglobal.h",
-        "androidmanager.cpp",
-        "androidmanager.h",
-        "androidmanifestdocument.cpp",
-        "androidmanifestdocument.h",
-        "androidmanifesteditor.cpp",
-        "androidmanifesteditor.h",
-        "androidmanifesteditorfactory.cpp",
-        "androidmanifesteditorfactory.h",
-        "androidmanifesteditorwidget.cpp",
-        "androidmanifesteditorwidget.h",
-        "androidplugin.cpp",
-        "androidplugin.h",
-        "androidpotentialkit.cpp",
-        "androidpotentialkit.h",
-        "androidqtsupport.cpp",
-        "androidqtsupport.h",
-        "androidqtversion.cpp",
-        "androidqtversion.h",
-        "androidqtversionfactory.cpp",
-        "androidqtversionfactory.h",
-        "androidrunconfiguration.cpp",
-        "androidrunconfiguration.h",
-        "androidruncontrol.cpp",
-        "androidruncontrol.h",
-        "androidrunfactories.cpp",
-        "androidrunfactories.h",
-        "androidrunnable.h",
-        "androidrunner.cpp",
-        "androidrunner.h",
-        "androidsettingspage.cpp",
-        "androidsettingspage.h",
-        "androidsettingswidget.cpp",
-        "androidsettingswidget.h",
-        "androidsettingswidget.ui",
-        "androidsignaloperation.cpp",
-        "androidsignaloperation.h",
-        "androidtoolchain.cpp",
-        "androidtoolchain.h",
-        "avddialog.cpp",
-        "avddialog.h",
-        "certificatesmodel.cpp",
-        "certificatesmodel.h",
-        "javacompletionassistprovider.cpp",
-        "javacompletionassistprovider.h",
-        "javaeditor.cpp",
-        "javaeditor.h",
-        "javaindenter.cpp",
-        "javaindenter.h",
-        "javaparser.cpp",
-        "javaparser.h",
-    ]
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "xml", "network"] }
+        Depends { name: "Core" }
+        Depends { name: "Debugger" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "QmlDebug" }
+        Depends { name: "QtSupport" }
+        Depends { name: "TextEditor" }
+        Depends { name: "Utils" }
+
+        files: [
+            "android_global.h",
+            "addnewavddialog.ui",
+            "android.qrc",
+            "androidanalyzesupport.cpp",
+            "androidanalyzesupport.h",
+            "androidconfigurations.cpp",
+            "androidconfigurations.h",
+            "androidconstants.h",
+            "androidcreatekeystorecertificate.cpp",
+            "androidcreatekeystorecertificate.h",
+            "androidcreatekeystorecertificate.ui",
+            "androidbuildapkstep.cpp",
+            "androidbuildapkstep.h",
+            "androidbuildapkwidget.cpp",
+            "androidbuildapkwidget.h",
+            "androidbuildapkwidget.ui",
+            "androiddeployqtstep.cpp",
+            "androiddeployqtstep.h",
+            "androiddebugsupport.cpp",
+            "androiddebugsupport.h",
+            "androiddevicedialog.cpp",
+            "androiddevicedialog.h",
+            "androiddevicedialog.ui",
+            "androiddeployconfiguration.cpp",
+            "androiddeployconfiguration.h",
+            "androiddeployqtwidget.cpp",
+            "androiddeployqtwidget.h",
+            "androiddeployqtwidget.ui",
+            "androiddevice.cpp",
+            "androiddevice.h",
+            "androiddevicefactory.cpp",
+            "androiddevicefactory.h",
+            "androiderrormessage.h",
+            "androiderrormessage.cpp",
+            "androidgdbserverkitinformation.cpp",
+            "androidgdbserverkitinformation.h",
+            "androidglobal.h",
+            "androidmanager.cpp",
+            "androidmanager.h",
+            "androidmanifestdocument.cpp",
+            "androidmanifestdocument.h",
+            "androidmanifesteditor.cpp",
+            "androidmanifesteditor.h",
+            "androidmanifesteditorfactory.cpp",
+            "androidmanifesteditorfactory.h",
+            "androidmanifesteditorwidget.cpp",
+            "androidmanifesteditorwidget.h",
+            "androidplugin.cpp",
+            "androidplugin.h",
+            "androidpotentialkit.cpp",
+            "androidpotentialkit.h",
+            "androidqtsupport.cpp",
+            "androidqtsupport.h",
+            "androidqtversion.cpp",
+            "androidqtversion.h",
+            "androidqtversionfactory.cpp",
+            "androidqtversionfactory.h",
+            "androidrunconfiguration.cpp",
+            "androidrunconfiguration.h",
+            "androidruncontrol.cpp",
+            "androidruncontrol.h",
+            "androidrunfactories.cpp",
+            "androidrunfactories.h",
+            "androidrunnable.h",
+            "androidrunner.cpp",
+            "androidrunner.h",
+            "androidsettingspage.cpp",
+            "androidsettingspage.h",
+            "androidsettingswidget.cpp",
+            "androidsettingswidget.h",
+            "androidsettingswidget.ui",
+            "androidsignaloperation.cpp",
+            "androidsignaloperation.h",
+            "androidtoolchain.cpp",
+            "androidtoolchain.h",
+            "avddialog.cpp",
+            "avddialog.h",
+            "certificatesmodel.cpp",
+            "certificatesmodel.h",
+            "javacompletionassistprovider.cpp",
+            "javacompletionassistprovider.h",
+            "javaeditor.cpp",
+            "javaeditor.h",
+            "javaindenter.cpp",
+            "javaindenter.h",
+            "javaparser.cpp",
+            "javaparser.h",
+        ]
+    }
 }
diff --git a/src/plugins/coreplugin/coreplugin.qbs b/src/plugins/coreplugin/coreplugin.qbs
index dc2018cd048db3af471912d0bafee2cab01788cd..d2e2c7d268b5a5b6ba4f6629c7607e760a502f8d 100644
--- a/src/plugins/coreplugin/coreplugin.qbs
+++ b/src/plugins/coreplugin/coreplugin.qbs
@@ -1,303 +1,303 @@
 import qbs 1.0
 import qbs.FileInfo
 
-QtcPlugin {
+Project {
     name: "Core"
 
-    Depends {
-        name: "Qt"
-        submodules: [
-            "widgets", "xml", "network", "qml", "sql", "help", "printsupport"
-        ]
-    }
+    QtcDevHeaders { }
 
-    Depends {
-        name: "Qt.gui-private"
-        condition: qbs.targetOS.contains("windows")
-    }
+    QtcPlugin {
+        Depends {
+            name: "Qt"
+            submodules: ["widgets", "xml", "network", "qml", "sql", "help", "printsupport"]
+        }
 
-    Depends { name: "Utils" }
-    Depends { name: "Aggregation" }
+        Depends {
+            name: "Qt.gui-private"
+            condition: qbs.targetOS.contains("windows")
+        }
 
-    Depends { name: "app_version_header" }
+        Depends { name: "Utils" }
+        Depends { name: "Aggregation" }
 
-    cpp.dynamicLibraries: {
-        if (qbs.targetOS.contains("windows")) return [
-            "ole32",
-            "user32"
-        ]
-    }
+        Depends { name: "app_version_header" }
 
-    cpp.frameworks: qbs.targetOS.contains("osx") ? ["AppKit"] : undefined
+        cpp.dynamicLibraries: {
+            if (qbs.targetOS.contains("windows"))
+                return ["ole32", "user32"]
+        }
 
-    Group {
-        name: "General"
-        files: [
-            "basefilewizard.cpp", "basefilewizard.h",
-            "basefilewizardfactory.cpp", "basefilewizardfactory.h",
-            "core.qrc",
-            "core_global.h",
-            "coreconstants.h",
-            "coreicons.cpp", "coreicons.h",
-            "corejsextensions.cpp", "corejsextensions.h",
-            "coreplugin.cpp", "coreplugin.h",
-            "designmode.cpp", "designmode.h",
-            "documentmanager.cpp", "documentmanager.h",
-            "editmode.cpp", "editmode.h",
-            "editortoolbar.cpp", "editortoolbar.h",
-            "externaltool.cpp", "externaltool.h",
-            "externaltoolmanager.cpp", "externaltoolmanager.h",
-            "fancyactionbar.cpp", "fancyactionbar.h", "fancyactionbar.qrc",
-            "fancytabwidget.cpp", "fancytabwidget.h",
-            "featureprovider.cpp", "featureprovider.h",
-            "fileiconprovider.cpp", "fileiconprovider.h",
-            "fileutils.cpp", "fileutils.h",
-            "findplaceholder.cpp", "findplaceholder.h",
-            "generalsettings.cpp", "generalsettings.h", "generalsettings.ui",
-            "generatedfile.cpp", "generatedfile.h",
-            "helpmanager.cpp", "helpmanager.h",
-            "icontext.cpp", "icontext.h",
-            "icore.cpp", "icore.h",
-            "id.cpp", "id.h",
-            "idocument.cpp", "idocument.h",
-            "idocumentfactory.cpp", "idocumentfactory.h",
-            "ifilewizardextension.h",
-            "imode.cpp", "imode.h",
-            "inavigationwidgetfactory.cpp", "inavigationwidgetfactory.h",
-            "infobar.cpp", "infobar.h",
-            "ioutputpane.cpp", "ioutputpane.h",
-            "iversioncontrol.cpp", "iversioncontrol.h",
-            "iwelcomepage.cpp", "iwelcomepage.h",
-            "iwizardfactory.cpp", "iwizardfactory.h",
-            "jsexpander.cpp", "jsexpander.h",
-            "mainwindow.cpp", "mainwindow.h",
-            "manhattanstyle.cpp", "manhattanstyle.h",
-            "messagebox.cpp", "messagebox.h",
-            "messagemanager.cpp", "messagemanager.h",
-            "messageoutputwindow.cpp", "messageoutputwindow.h",
-            "mimetypemagicdialog.cpp", "mimetypemagicdialog.h", "mimetypemagicdialog.ui",
-            "mimetypesettings.cpp", "mimetypesettings.h",
-            "mimetypesettingspage.ui",
-            "minisplitter.cpp", "minisplitter.h",
-            "modemanager.cpp", "modemanager.h",
-            "navigationsubwidget.cpp", "navigationsubwidget.h",
-            "navigationwidget.cpp", "navigationwidget.h",
-            "opendocumentstreeview.cpp", "opendocumentstreeview.h",
-            "outputpane.cpp", "outputpane.h",
-            "outputpanemanager.cpp", "outputpanemanager.h",
-            "outputwindow.cpp", "outputwindow.h",
-            "patchtool.cpp", "patchtool.h",
-            "plugindialog.cpp", "plugindialog.h",
-            "removefiledialog.cpp", "removefiledialog.h", "removefiledialog.ui",
-            "rightpane.cpp", "rightpane.h",
-            "settingsdatabase.cpp", "settingsdatabase.h",
-            "shellcommand.cpp", "shellcommand.h",
-            "sidebar.cpp", "sidebar.h",
-            "sidebarwidget.cpp", "sidebarwidget.h",
-            "statusbarmanager.cpp", "statusbarmanager.h",
-            "statusbarwidget.cpp", "statusbarwidget.h",
-            "styleanimator.cpp", "styleanimator.h",
-            "systemsettings.cpp", "systemsettings.h", "systemsettings.ui",
-            "textdocument.cpp", "textdocument.h",
-            "themechooser.cpp", "themechooser.h",
-            "toolsettings.cpp", "toolsettings.h",
-            "variablechooser.cpp", "variablechooser.h",
-            "vcsmanager.cpp", "vcsmanager.h",
-            "versiondialog.cpp", "versiondialog.h",
-            "windowsupport.cpp", "windowsupport.h"
-        ]
-    }
+        cpp.frameworks: qbs.targetOS.contains("osx") ? ["AppKit"] : undefined
 
-    Group {
-        name: "Action Manager"
-        prefix: "actionmanager/"
-        files: [
-            "actioncontainer.cpp", "actioncontainer.h", "actioncontainer_p.h",
-            "actionmanager.cpp", "actionmanager.h", "actionmanager_p.h",
-            "command.cpp", "command.h", "command_p.h",
-            "commandbutton.cpp", "commandbutton.h",
-            "commandmappings.cpp", "commandmappings.h",
-            "commandsfile.cpp", "commandsfile.h",
-        ]
-    }
+        Group {
+            name: "General"
+            files: [
+                "basefilewizard.cpp", "basefilewizard.h",
+                "basefilewizardfactory.cpp", "basefilewizardfactory.h",
+                "core.qrc",
+                "core_global.h",
+                "coreconstants.h",
+                "coreicons.cpp", "coreicons.h",
+                "corejsextensions.cpp", "corejsextensions.h",
+                "coreplugin.cpp", "coreplugin.h",
+                "designmode.cpp", "designmode.h",
+                "documentmanager.cpp", "documentmanager.h",
+                "editmode.cpp", "editmode.h",
+                "editortoolbar.cpp", "editortoolbar.h",
+                "externaltool.cpp", "externaltool.h",
+                "externaltoolmanager.cpp", "externaltoolmanager.h",
+                "fancyactionbar.cpp", "fancyactionbar.h", "fancyactionbar.qrc",
+                "fancytabwidget.cpp", "fancytabwidget.h",
+                "featureprovider.cpp", "featureprovider.h",
+                "fileiconprovider.cpp", "fileiconprovider.h",
+                "fileutils.cpp", "fileutils.h",
+                "findplaceholder.cpp", "findplaceholder.h",
+                "generalsettings.cpp", "generalsettings.h", "generalsettings.ui",
+                "generatedfile.cpp", "generatedfile.h",
+                "helpmanager.cpp", "helpmanager.h",
+                "icontext.cpp", "icontext.h",
+                "icore.cpp", "icore.h",
+                "id.cpp", "id.h",
+                "idocument.cpp", "idocument.h",
+                "idocumentfactory.cpp", "idocumentfactory.h",
+                "ifilewizardextension.h",
+                "imode.cpp", "imode.h",
+                "inavigationwidgetfactory.cpp", "inavigationwidgetfactory.h",
+                "infobar.cpp", "infobar.h",
+                "ioutputpane.cpp", "ioutputpane.h",
+                "iversioncontrol.cpp", "iversioncontrol.h",
+                "iwelcomepage.cpp", "iwelcomepage.h",
+                "iwizardfactory.cpp", "iwizardfactory.h",
+                "jsexpander.cpp", "jsexpander.h",
+                "mainwindow.cpp", "mainwindow.h",
+                "manhattanstyle.cpp", "manhattanstyle.h",
+                "messagebox.cpp", "messagebox.h",
+                "messagemanager.cpp", "messagemanager.h",
+                "messageoutputwindow.cpp", "messageoutputwindow.h",
+                "mimetypemagicdialog.cpp", "mimetypemagicdialog.h", "mimetypemagicdialog.ui",
+                "mimetypesettings.cpp", "mimetypesettings.h",
+                "mimetypesettingspage.ui",
+                "minisplitter.cpp", "minisplitter.h",
+                "modemanager.cpp", "modemanager.h",
+                "navigationsubwidget.cpp", "navigationsubwidget.h",
+                "navigationwidget.cpp", "navigationwidget.h",
+                "opendocumentstreeview.cpp", "opendocumentstreeview.h",
+                "outputpane.cpp", "outputpane.h",
+                "outputpanemanager.cpp", "outputpanemanager.h",
+                "outputwindow.cpp", "outputwindow.h",
+                "patchtool.cpp", "patchtool.h",
+                "plugindialog.cpp", "plugindialog.h",
+                "removefiledialog.cpp", "removefiledialog.h", "removefiledialog.ui",
+                "rightpane.cpp", "rightpane.h",
+                "settingsdatabase.cpp", "settingsdatabase.h",
+                "shellcommand.cpp", "shellcommand.h",
+                "sidebar.cpp", "sidebar.h",
+                "sidebarwidget.cpp", "sidebarwidget.h",
+                "statusbarmanager.cpp", "statusbarmanager.h",
+                "statusbarwidget.cpp", "statusbarwidget.h",
+                "styleanimator.cpp", "styleanimator.h",
+                "systemsettings.cpp", "systemsettings.h", "systemsettings.ui",
+                "textdocument.cpp", "textdocument.h",
+                "themechooser.cpp", "themechooser.h",
+                "toolsettings.cpp", "toolsettings.h",
+                "variablechooser.cpp", "variablechooser.h",
+                "vcsmanager.cpp", "vcsmanager.h",
+                "versiondialog.cpp", "versiondialog.h",
+                "windowsupport.cpp", "windowsupport.h"
+            ]
+        }
 
-    Group {
-        name: "Dialogs"
-        prefix: "dialogs/"
-        files: [
-            "addtovcsdialog.cpp", "addtovcsdialog.h", "addtovcsdialog.ui",
-            "externaltoolconfig.cpp", "externaltoolconfig.h", "externaltoolconfig.ui",
-            "ioptionspage.cpp", "ioptionspage.h",
-            "newdialog.cpp", "newdialog.h", "newdialog.ui",
-            "openwithdialog.cpp", "openwithdialog.h", "openwithdialog.ui",
-            "promptoverwritedialog.cpp", "promptoverwritedialog.h",
-            "readonlyfilesdialog.cpp", "readonlyfilesdialog.h", "readonlyfilesdialog.ui",
-            "saveitemsdialog.cpp", "saveitemsdialog.h", "saveitemsdialog.ui",
-            "settingsdialog.cpp", "settingsdialog.h",
-            "shortcutsettings.cpp", "shortcutsettings.h",
-        ]
-    }
+        Group {
+            name: "Action Manager"
+            prefix: "actionmanager/"
+            files: [
+                "actioncontainer.cpp", "actioncontainer.h", "actioncontainer_p.h",
+                "actionmanager.cpp", "actionmanager.h", "actionmanager_p.h",
+                "command.cpp", "command.h", "command_p.h",
+                "commandbutton.cpp", "commandbutton.h",
+                "commandmappings.cpp", "commandmappings.h",
+                "commandsfile.cpp", "commandsfile.h",
+            ]
+        }
 
-    Group {
-        name: "Editor Manager"
-        prefix: "editormanager/"
-        files: [
-            "documentmodel.cpp", "documentmodel.h", "documentmodel_p.h",
-            "editorarea.cpp", "editorarea.h",
-            "editormanager.cpp", "editormanager.h", "editormanager_p.h",
-            "editorview.cpp", "editorview.h",
-            "editorwindow.cpp", "editorwindow.h",
-            "ieditor.cpp", "ieditor.h",
-            "ieditorfactory.cpp", "ieditorfactory.h",
-            "iexternaleditor.cpp", "iexternaleditor.h",
-            "openeditorsview.cpp", "openeditorsview.h",
-            "openeditorswindow.cpp", "openeditorswindow.h",
-            "systemeditor.cpp", "systemeditor.h",
-        ]
-    }
+        Group {
+            name: "Dialogs"
+            prefix: "dialogs/"
+            files: [
+                "addtovcsdialog.cpp", "addtovcsdialog.h", "addtovcsdialog.ui",
+                "externaltoolconfig.cpp", "externaltoolconfig.h", "externaltoolconfig.ui",
+                "ioptionspage.cpp", "ioptionspage.h",
+                "newdialog.cpp", "newdialog.h", "newdialog.ui",
+                "openwithdialog.cpp", "openwithdialog.h", "openwithdialog.ui",
+                "promptoverwritedialog.cpp", "promptoverwritedialog.h",
+                "readonlyfilesdialog.cpp", "readonlyfilesdialog.h", "readonlyfilesdialog.ui",
+                "saveitemsdialog.cpp", "saveitemsdialog.h", "saveitemsdialog.ui",
+                "settingsdialog.cpp", "settingsdialog.h",
+                "shortcutsettings.cpp", "shortcutsettings.h",
+            ]
+        }
 
-    Group {
-        name: "Progress Manager"
-        prefix: "progressmanager/"
-        files: [
-            "futureprogress.cpp", "futureprogress.h",
-            "progressbar.cpp", "progressbar.h",
-            "progressmanager.cpp", "progressmanager.h", "progressmanager_p.h",
-            "progressview.cpp", "progressview.h",
-        ]
-    }
+        Group {
+            name: "Editor Manager"
+            prefix: "editormanager/"
+            files: [
+                "documentmodel.cpp", "documentmodel.h", "documentmodel_p.h",
+                "editorarea.cpp", "editorarea.h",
+                "editormanager.cpp", "editormanager.h", "editormanager_p.h",
+                "editorview.cpp", "editorview.h",
+                "editorwindow.cpp", "editorwindow.h",
+                "ieditor.cpp", "ieditor.h",
+                "ieditorfactory.cpp", "ieditorfactory.h",
+                "iexternaleditor.cpp", "iexternaleditor.h",
+                "openeditorsview.cpp", "openeditorsview.h",
+                "openeditorswindow.cpp", "openeditorswindow.h",
+                "systemeditor.cpp", "systemeditor.h",
+            ]
+        }
 
-    Group {
-        name: "ProgressManager_win"
-        condition: qbs.targetOS.contains("windows")
-        files: [
-            "progressmanager/progressmanager_win.cpp",
-        ]
-    }
+        Group {
+            name: "Progress Manager"
+            prefix: "progressmanager/"
+            files: [
+                "futureprogress.cpp", "futureprogress.h",
+                "progressbar.cpp", "progressbar.h",
+                "progressmanager.cpp", "progressmanager.h", "progressmanager_p.h",
+                "progressview.cpp", "progressview.h",
+            ]
+        }
 
-    Group {
-        name: "ProgressManager_mac"
-        condition: qbs.targetOS.contains("osx")
-        files: [
-            "progressmanager/progressmanager_mac.mm",
-        ]
-    }
+        Group {
+            name: "ProgressManager_win"
+            condition: qbs.targetOS.contains("windows")
+            files: [
+                "progressmanager/progressmanager_win.cpp",
+            ]
+        }
 
-    Group {
-        name: "ProgressManager_x11"
-        condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("osx")
-        files: [
-            "progressmanager/progressmanager_x11.cpp",
-        ]
-    }
+        Group {
+            name: "ProgressManager_mac"
+            condition: qbs.targetOS.contains("osx")
+            files: [
+                "progressmanager/progressmanager_mac.mm",
+            ]
+        }
 
-    Group {
-        name: "Tests"
-        condition: qtc.testsEnabled
-        files: [
-            "testdatadir.cpp",
-            "testdatadir.h",
-            "locator/locatorfiltertest.cpp",
-            "locator/locatorfiltertest.h",
-            "locator/locator_test.cpp"
-        ]
+        Group {
+            name: "ProgressManager_x11"
+            condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("osx")
+            files: [
+                "progressmanager/progressmanager_x11.cpp",
+            ]
+        }
 
-        cpp.defines: outer.concat(['SRCDIR="' + FileInfo.path(filePath) + '"'])
-    }
+        Group {
+            name: "Tests"
+            condition: qtc.testsEnabled
+            files: [
+                "testdatadir.cpp",
+                "testdatadir.h",
+                "locator/locatorfiltertest.cpp",
+                "locator/locatorfiltertest.h",
+                "locator/locator_test.cpp"
+            ]
 
-    Group {
-        name: "Find"
-        prefix: "find/"
-        files: [
-            "basetextfind.cpp",
-            "basetextfind.h",
-            "currentdocumentfind.cpp",
-            "currentdocumentfind.h",
-            "find.qrc",
-            "finddialog.ui",
-            "findplugin.cpp",
-            "findplugin.h",
-            "findtoolbar.cpp",
-            "findtoolbar.h",
-            "findtoolwindow.cpp",
-            "findtoolwindow.h",
-            "findwidget.ui",
-            "highlightscrollbar.cpp",
-            "highlightscrollbar.h",
-            "ifindfilter.cpp",
-            "ifindfilter.h",
-            "ifindsupport.cpp",
-            "ifindsupport.h",
-            "itemviewfind.cpp",
-            "itemviewfind.h",
-            "searchresultcolor.h",
-            "searchresulttreeitemdelegate.cpp",
-            "searchresulttreeitemdelegate.h",
-            "searchresulttreeitemroles.h",
-            "searchresulttreeitems.cpp",
-            "searchresulttreeitems.h",
-            "searchresulttreemodel.cpp",
-            "searchresulttreemodel.h",
-            "searchresulttreeview.cpp",
-            "searchresulttreeview.h",
-            "searchresultwidget.cpp",
-            "searchresultwidget.h",
-            "searchresultwindow.cpp",
-            "searchresultwindow.h",
-            "textfindconstants.h",
-        ]
-    }
+            cpp.defines: outer.concat(['SRCDIR="' + FileInfo.path(filePath) + '"'])
+        }
 
-    Group {
-        name: "Locator"
-        prefix: "locator/"
-        files: [
-            "basefilefilter.cpp",
-            "basefilefilter.h",
-            "commandlocator.cpp",
-            "commandlocator.h",
-            "directoryfilter.cpp",
-            "directoryfilter.h",
-            "directoryfilter.ui",
-            "executefilter.cpp",
-            "executefilter.h",
-            "externaltoolsfilter.cpp",
-            "externaltoolsfilter.h",
-            "filesystemfilter.cpp",
-            "filesystemfilter.h",
-            "filesystemfilter.ui",
-            "ilocatorfilter.cpp",
-            "ilocatorfilter.h",
-            "locatorconstants.h",
-            "locatorfiltersfilter.cpp",
-            "locatorfiltersfilter.h",
-            "locatormanager.cpp",
-            "locatormanager.h",
-            "locator.cpp",
-            "locator.h",
-            "locatorsearchutils.cpp",
-            "locatorsearchutils.h",
-            "locatorwidget.cpp",
-            "locatorwidget.h",
-            "opendocumentsfilter.cpp",
-            "opendocumentsfilter.h",
-            "locatorsettingspage.cpp",
-            "locatorsettingspage.h",
-            "locatorsettingspage.ui",
-        ]
-    }
+        Group {
+            name: "Find"
+            prefix: "find/"
+            files: [
+                "basetextfind.cpp",
+                "basetextfind.h",
+                "currentdocumentfind.cpp",
+                "currentdocumentfind.h",
+                "find.qrc",
+                "finddialog.ui",
+                "findplugin.cpp",
+                "findplugin.h",
+                "findtoolbar.cpp",
+                "findtoolbar.h",
+                "findtoolwindow.cpp",
+                "findtoolwindow.h",
+                "findwidget.ui",
+                "highlightscrollbar.cpp",
+                "highlightscrollbar.h",
+                "ifindfilter.cpp",
+                "ifindfilter.h",
+                "ifindsupport.cpp",
+                "ifindsupport.h",
+                "itemviewfind.cpp",
+                "itemviewfind.h",
+                "searchresultcolor.h",
+                "searchresulttreeitemdelegate.cpp",
+                "searchresulttreeitemdelegate.h",
+                "searchresulttreeitemroles.h",
+                "searchresulttreeitems.cpp",
+                "searchresulttreeitems.h",
+                "searchresulttreemodel.cpp",
+                "searchresulttreemodel.h",
+                "searchresulttreeview.cpp",
+                "searchresulttreeview.h",
+                "searchresultwidget.cpp",
+                "searchresultwidget.h",
+                "searchresultwindow.cpp",
+                "searchresultwindow.h",
+                "textfindconstants.h",
+            ]
+        }
 
-    Group {
-        name: "Locator_mac"
-        condition: qbs.targetOS.contains("osx")
-        files: [
-            "locator/spotlightlocatorfilter.h",
-            "locator/spotlightlocatorfilter.mm",
-        ]
-    }
+        Group {
+            name: "Locator"
+            prefix: "locator/"
+            files: [
+                "basefilefilter.cpp",
+                "basefilefilter.h",
+                "commandlocator.cpp",
+                "commandlocator.h",
+                "directoryfilter.cpp",
+                "directoryfilter.h",
+                "directoryfilter.ui",
+                "executefilter.cpp",
+                "executefilter.h",
+                "externaltoolsfilter.cpp",
+                "externaltoolsfilter.h",
+                "filesystemfilter.cpp",
+                "filesystemfilter.h",
+                "filesystemfilter.ui",
+                "ilocatorfilter.cpp",
+                "ilocatorfilter.h",
+                "locatorconstants.h",
+                "locatorfiltersfilter.cpp",
+                "locatorfiltersfilter.h",
+                "locatormanager.cpp",
+                "locatormanager.h",
+                "locator.cpp",
+                "locator.h",
+                "locatorsearchutils.cpp",
+                "locatorsearchutils.h",
+                "locatorwidget.cpp",
+                "locatorwidget.h",
+                "opendocumentsfilter.cpp",
+                "opendocumentsfilter.h",
+                "locatorsettingspage.cpp",
+                "locatorsettingspage.h",
+                "locatorsettingspage.ui",
+            ]
+        }
 
-    Export {
-        Depends { name: "Aggregation" }
-        Depends { name: "Utils" }
+        Group {
+            name: "Locator_mac"
+            condition: qbs.targetOS.contains("osx")
+            files: [
+                "locator/spotlightlocatorfilter.h",
+                "locator/spotlightlocatorfilter.mm",
+            ]
+        }
+
+        Export {
+            Depends { name: "Aggregation" }
+            Depends { name: "Utils" }
+        }
     }
 }
diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs
index 9896b33bab497dc99653eeb62451b9744bb6f74d..351cd076fadad43352a703d63ed85689f1a1369c 100644
--- a/src/plugins/debugger/debugger.qbs
+++ b/src/plugins/debugger/debugger.qbs
@@ -1,284 +1,288 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "Debugger"
 
-    Depends { name: "Qt"; submodules: ["widgets", "network"] }
-    Depends { name: "Aggregation" }
-    Depends { name: "CPlusPlus" }
-    Depends { name: "QtcSsh" }
-    Depends { name: "QmlDebug" }
-    Depends { name: "LanguageUtils" }
-    Depends { name: "QmlJS" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
-    Depends { name: "CppTools" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "QtSupport" }
-    Depends { name: "TextEditor" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "network"] }
+        Depends { name: "Aggregation" }
+        Depends { name: "CPlusPlus" }
+        Depends { name: "QtcSsh" }
+        Depends { name: "QmlDebug" }
+        Depends { name: "LanguageUtils" }
+        Depends { name: "QmlJS" }
+        Depends { name: "Utils" }
 
+        Depends { name: "Core" }
+        Depends { name: "CppTools" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "QtSupport" }
+        Depends { name: "TextEditor" }
 
-    Depends {
-        name: "Qt.test"
-        condition: qtc.testsEnabled
-    }
 
-    pluginTestDepends: [
-        "QmakeProjectManager"
-    ]
+        Depends {
+            name: "Qt.test"
+            condition: qtc.testsEnabled
+        }
 
-    cpp.includePaths: base.concat([project.sharedSourcesDir + "/registryaccess"])
-    cpp.enableExceptions: true
+        pluginTestDepends: [
+            "QmakeProjectManager"
+        ]
 
-    pluginRecommends: [
-        "CppEditor"
-    ]
+        cpp.includePaths: base.concat([project.sharedSourcesDir + "/registryaccess"])
+        cpp.enableExceptions: true
 
-    Group {
-        name: "General"
-        files: [
-            "breakhandler.cpp", "breakhandler.h",
-            "breakpoint.cpp", "breakpoint.h",
-            "breakwindow.cpp", "breakwindow.h",
-            "commonoptionspage.cpp", "commonoptionspage.h",
-            "debugger.qrc",
-            "debugger_global.h",
-            "debuggeractions.cpp", "debuggeractions.h",
-            "debuggerconstants.h",
-            "debuggericons.h",
-            "debuggercore.h",
-            "debuggerdialogs.cpp", "debuggerdialogs.h",
-            "debuggerengine.cpp", "debuggerengine.h",
-            "debuggerinternalconstants.h",
-            "debuggeritem.cpp", "debuggeritem.h",
-            "debuggeritemmanager.cpp", "debuggeritemmanager.h",
-            "debuggerkitconfigwidget.cpp", "debuggerkitconfigwidget.h",
-            "debuggerkitinformation.cpp", "debuggerkitinformation.h",
-            "debuggermainwindow.cpp", "debuggermainwindow.h",
-            "debuggeroptionspage.cpp", "debuggeroptionspage.h",
-            "debuggerplugin.cpp", "debuggerplugin.h",
-            "debuggerprotocol.cpp", "debuggerprotocol.h",
-            "debuggerrunconfigurationaspect.cpp", "debuggerrunconfigurationaspect.h",
-            "debuggerruncontrol.cpp", "debuggerruncontrol.h",
-            "debuggersourcepathmappingwidget.cpp", "debuggersourcepathmappingwidget.h",
-            "debuggerstartparameters.h",
-            "debuggertooltipmanager.cpp", "debuggertooltipmanager.h",
-            "disassembleragent.cpp", "disassembleragent.h",
-            "disassemblerlines.cpp", "disassemblerlines.h",
-            "imageviewer.cpp", "imageviewer.h",
-            "loadcoredialog.cpp", "loadcoredialog.h",
-            "localsandexpressionswindow.cpp", "localsandexpressionswindow.h",
-            "logwindow.cpp", "logwindow.h",
-            "memoryagent.cpp", "memoryagent.h",
-            "memoryview.cpp", "memoryview.h",
-            "moduleshandler.cpp", "moduleshandler.h",
-            "moduleswindow.cpp", "moduleswindow.h",
-            "outputcollector.cpp", "outputcollector.h",
-            "procinterrupt.cpp", "procinterrupt.h",
-            "registerhandler.cpp", "registerhandler.h",
-            "registerwindow.cpp", "registerwindow.h",
-            "snapshothandler.cpp", "snapshothandler.h",
-            "snapshotwindow.cpp", "snapshotwindow.h",
-            "sourceagent.cpp", "sourceagent.h",
-            "sourcefileshandler.cpp", "sourcefileshandler.h",
-            "sourcefileswindow.cpp", "sourcefileswindow.h",
-            "sourceutils.cpp", "sourceutils.h",
-            "stackframe.cpp", "stackframe.h",
-            "stackhandler.cpp", "stackhandler.h",
-            "stackwindow.cpp", "stackwindow.h",
-            "terminal.cpp", "terminal.h",
-            "threaddata.h",
-            "threadshandler.cpp", "threadshandler.h",
-            "threadswindow.cpp", "threadswindow.h",
-            "watchdata.cpp", "watchdata.h",
-            "watchdelegatewidgets.cpp", "watchdelegatewidgets.h",
-            "watchhandler.cpp", "watchhandler.h",
-            "watchutils.cpp", "watchutils.h",
-            "watchwindow.cpp", "watchwindow.h",
-            "simplifytype.cpp", "simplifytype.h",
-            "unstartedappwatcherdialog.cpp", "unstartedappwatcherdialog.h"
+        pluginRecommends: [
+            "CppEditor"
         ]
-    }
 
-    Group {
-        name: "cdb"
-        prefix: "cdb/"
-        files: [
-            "stringinputstream.cpp", "stringinputstream.h",
-            "cdbengine.cpp", "cdbengine.h",
-            "cdboptionspage.cpp", "cdboptionspage.h",
-            "cdboptionspagewidget.ui",
-            "cdbparsehelpers.cpp", "cdbparsehelpers.h"
-        ]
-    }
+        Group {
+            name: "General"
+            files: [
+                "breakhandler.cpp", "breakhandler.h",
+                "breakpoint.cpp", "breakpoint.h",
+                "breakwindow.cpp", "breakwindow.h",
+                "commonoptionspage.cpp", "commonoptionspage.h",
+                "debugger.qrc",
+                "debugger_global.h",
+                "debuggeractions.cpp", "debuggeractions.h",
+                "debuggerconstants.h",
+                "debuggericons.h",
+                "debuggercore.h",
+                "debuggerdialogs.cpp", "debuggerdialogs.h",
+                "debuggerengine.cpp", "debuggerengine.h",
+                "debuggerinternalconstants.h",
+                "debuggeritem.cpp", "debuggeritem.h",
+                "debuggeritemmanager.cpp", "debuggeritemmanager.h",
+                "debuggerkitconfigwidget.cpp", "debuggerkitconfigwidget.h",
+                "debuggerkitinformation.cpp", "debuggerkitinformation.h",
+                "debuggermainwindow.cpp", "debuggermainwindow.h",
+                "debuggeroptionspage.cpp", "debuggeroptionspage.h",
+                "debuggerplugin.cpp", "debuggerplugin.h",
+                "debuggerprotocol.cpp", "debuggerprotocol.h",
+                "debuggerrunconfigurationaspect.cpp", "debuggerrunconfigurationaspect.h",
+                "debuggerruncontrol.cpp", "debuggerruncontrol.h",
+                "debuggersourcepathmappingwidget.cpp", "debuggersourcepathmappingwidget.h",
+                "debuggerstartparameters.h",
+                "debuggertooltipmanager.cpp", "debuggertooltipmanager.h",
+                "disassembleragent.cpp", "disassembleragent.h",
+                "disassemblerlines.cpp", "disassemblerlines.h",
+                "imageviewer.cpp", "imageviewer.h",
+                "loadcoredialog.cpp", "loadcoredialog.h",
+                "localsandexpressionswindow.cpp", "localsandexpressionswindow.h",
+                "logwindow.cpp", "logwindow.h",
+                "memoryagent.cpp", "memoryagent.h",
+                "memoryview.cpp", "memoryview.h",
+                "moduleshandler.cpp", "moduleshandler.h",
+                "moduleswindow.cpp", "moduleswindow.h",
+                "outputcollector.cpp", "outputcollector.h",
+                "procinterrupt.cpp", "procinterrupt.h",
+                "registerhandler.cpp", "registerhandler.h",
+                "registerwindow.cpp", "registerwindow.h",
+                "snapshothandler.cpp", "snapshothandler.h",
+                "snapshotwindow.cpp", "snapshotwindow.h",
+                "sourceagent.cpp", "sourceagent.h",
+                "sourcefileshandler.cpp", "sourcefileshandler.h",
+                "sourcefileswindow.cpp", "sourcefileswindow.h",
+                "sourceutils.cpp", "sourceutils.h",
+                "stackframe.cpp", "stackframe.h",
+                "stackhandler.cpp", "stackhandler.h",
+                "stackwindow.cpp", "stackwindow.h",
+                "terminal.cpp", "terminal.h",
+                "threaddata.h",
+                "threadshandler.cpp", "threadshandler.h",
+                "threadswindow.cpp", "threadswindow.h",
+                "watchdata.cpp", "watchdata.h",
+                "watchdelegatewidgets.cpp", "watchdelegatewidgets.h",
+                "watchhandler.cpp", "watchhandler.h",
+                "watchutils.cpp", "watchutils.h",
+                "watchwindow.cpp", "watchwindow.h",
+                "simplifytype.cpp", "simplifytype.h",
+                "unstartedappwatcherdialog.cpp", "unstartedappwatcherdialog.h"
+            ]
+        }
 
-    Group {
-        name: "gdb"
-        prefix: "gdb/"
-        files: [
-            "attachgdbadapter.cpp", "attachgdbadapter.h",
-            "coregdbadapter.cpp", "coregdbadapter.h",
-            "gdbengine.cpp", "gdbengine.h",
-            "gdboptionspage.cpp",
-            "gdbplainengine.cpp", "gdbplainengine.h",
-            "remotegdbserveradapter.cpp", "remotegdbserveradapter.h",
-            "startgdbserverdialog.cpp", "startgdbserverdialog.h",
-            "termgdbadapter.cpp", "termgdbadapter.h"
-        ]
-    }
+        Group {
+            name: "cdb"
+            prefix: "cdb/"
+            files: [
+                "cdbengine.cpp", "cdbengine.h",
+                "cdboptionspage.cpp", "cdboptionspage.h",
+                "cdboptionspagewidget.ui",
+                "cdbparsehelpers.cpp", "cdbparsehelpers.h",
+                "stringinputstream.cpp", "stringinputstream.h",
+            ]
+        }
 
-    Group {
-        name: "lldb"
-        prefix: "lldb/"
-        files: [
-            "lldbengine.cpp", "lldbengine.h"
-        ]
-    }
+        Group {
+            name: "gdb"
+            prefix: "gdb/"
+            files: [
+                "attachgdbadapter.cpp", "attachgdbadapter.h",
+                "coregdbadapter.cpp", "coregdbadapter.h",
+                "gdbengine.cpp", "gdbengine.h",
+                "gdboptionspage.cpp",
+                "gdbplainengine.cpp", "gdbplainengine.h",
+                "remotegdbserveradapter.cpp", "remotegdbserveradapter.h",
+                "startgdbserverdialog.cpp", "startgdbserverdialog.h",
+                "termgdbadapter.cpp", "termgdbadapter.h"
+            ]
+        }
 
-    Group {
-        name: "pdb"
-        prefix: "pdb/"
-        files: ["pdbengine.cpp", "pdbengine.h"]
-    }
+        Group {
+            name: "lldb"
+            prefix: "lldb/"
+            files: [
+                "lldbengine.cpp", "lldbengine.h"
+            ]
+        }
 
-    Group {
-        name: "Name Demangler"
-        prefix: "namedemangler/"
-        files: [
-            "demanglerexceptions.h",
-            "globalparsestate.cpp", "globalparsestate.h",
-            "namedemangler.cpp", "namedemangler.h",
-            "parsetreenodes.cpp", "parsetreenodes.h",
-        ]
-    }
+        Group {
+            name: "pdb"
+            prefix: "pdb/"
+            files: ["pdbengine.cpp", "pdbengine.h"]
+        }
 
-    Group {
-        name: "QML Debugger"
-        prefix: "qml/"
-        files: [
-            "interactiveinterpreter.cpp", "interactiveinterpreter.h",
-            "qmlcppengine.cpp", "qmlcppengine.h",
-            "qmlengine.cpp", "qmlengine.h",
-            "qmlengineutils.cpp", "qmlengineutils.h",
-            "qmlinspectoragent.cpp", "qmlinspectoragent.h",
-            "qmlv8debuggerclientconstants.h"
-        ]
-    }
+        Group {
+            name: "Name Demangler"
+            prefix: "namedemangler/"
+            files: [
+                "demanglerexceptions.h",
+                "globalparsestate.cpp", "globalparsestate.h",
+                "namedemangler.cpp", "namedemangler.h",
+                "parsetreenodes.cpp", "parsetreenodes.h",
+            ]
+        }
 
-     Group {
-        name: "Debugger Console"
-        prefix: "console/"
-        files: [
-            "consoleitem.cpp", "consoleitem.h",
-            "consoleedit.cpp", "consoleedit.h",
-            "consoleitemdelegate.cpp", "consoleitemdelegate.h",
-            "consoleitemmodel.cpp", "consoleitemmodel.h",
-            "console.cpp", "console.h",
-            "consoleproxymodel.cpp", "consoleproxymodel.h",
-            "consoleview.cpp", "consoleview.h"
-        ]
-    }
+        Group {
+            name: "QML Debugger"
+            prefix: "qml/"
+            files: [
+                "interactiveinterpreter.cpp", "interactiveinterpreter.h",
+                "qmlcppengine.cpp", "qmlcppengine.h",
+                "qmlengine.cpp", "qmlengine.h",
+                "qmlengineutils.cpp", "qmlengineutils.h",
+                "qmlinspectoragent.cpp", "qmlinspectoragent.h",
+                "qmlv8debuggerclientconstants.h"
+            ]
+        }
 
-    Group {
-        name: "shared"
-        prefix: "shared/"
-        files: [
-            "backtrace.cpp", "backtrace.h",
-            "cdbsymbolpathlisteditor.cpp",
-            "cdbsymbolpathlisteditor.h",
-            "hostutils.cpp", "hostutils.h",
-            "peutils.cpp", "peutils.h",
-            "symbolpathsdialog.ui", "symbolpathsdialog.cpp", "symbolpathsdialog.h"
-        ]
-    }
+        Group {
+            name: "Debugger Console"
+            prefix: "console/"
+            files: [
+                "consoleitem.cpp", "consoleitem.h",
+                "consoleedit.cpp", "consoleedit.h",
+                "consoleitemdelegate.cpp", "consoleitemdelegate.h",
+                "consoleitemmodel.cpp", "consoleitemmodel.h",
+                "console.cpp", "console.h",
+                "consoleproxymodel.cpp", "consoleproxymodel.h",
+                "consoleview.cpp", "consoleview.h"
+            ]
+        }
 
-    Group {
-        name: "Images"
-        prefix: "images/"
-        files: ["*.png", "*.xpm"]
-    }
+        Group {
+            name: "shared"
+            prefix: "shared/"
+            files: [
+                "backtrace.cpp", "backtrace.h",
+                "cdbsymbolpathlisteditor.cpp",
+                "cdbsymbolpathlisteditor.h",
+                "hostutils.cpp", "hostutils.h",
+                "peutils.cpp", "peutils.h",
+                "symbolpathsdialog.ui", "symbolpathsdialog.cpp", "symbolpathsdialog.h"
+            ]
+        }
 
-    Group {
-        name: "Images/qml"
-        prefix: "images/qml/"
-        files: ["*.png"]
-    }
+        Group {
+            name: "Images"
+            prefix: "images/"
+            files: ["*.png", "*.xpm"]
+        }
 
-    Group {
-        name: "Images/analyzer"
-        prefix: "analyzer/images/"
-        files: ["*.png"]
-    }
+        Group {
+            name: "Images/qml"
+            prefix: "images/qml/"
+            files: ["*.png"]
+        }
 
-    Group {
-        name: "RegistryAccess"
-        condition: qbs.targetOS.contains("windows")
-        prefix: project.sharedSourcesDir + "/registryaccess/"
-        files: [
-            "registryaccess.cpp",
-            "registryaccess.h",
-        ]
-    }
+        Group {
+            name: "Images/analyzer"
+            prefix: "analyzer/images/"
+            files: ["*.png"]
+        }
 
-    Group {
-        name: "RegisterPostMortem"
-        condition: qbs.targetOS.contains("windows")
-        files: [
-            "registerpostmortemaction.cpp",
-            "registerpostmortemaction.h",
-        ]
-    }
+        Group {
+            name: "RegistryAccess"
+            condition: qbs.targetOS.contains("windows")
+            prefix: project.sharedSourcesDir + "/registryaccess/"
+            files: [
+                "registryaccess.cpp",
+                "registryaccess.h",
+            ]
+        }
 
-    Properties {
-        condition: qbs.targetOS.contains("windows")
-        cpp.dynamicLibraries: [
-            "advapi32",
-            "ole32",
-            "shell32"
-        ]
-    }
+        Group {
+            name: "RegisterPostMortem"
+            condition: qbs.targetOS.contains("windows")
+            files: [
+                "registerpostmortemaction.cpp",
+                "registerpostmortemaction.h",
+            ]
+        }
 
-    Group {
-        name: "Analyzer"
-        prefix: "analyzer/"
-        files: [
-            "analyzerbase.qrc",
-            "analyzerconstants.h",
-            "analyzermanager.h",
-            "analyzerrunconfigwidget.cpp",
-            "analyzerrunconfigwidget.h",
-            "analyzerruncontrol.cpp",
-            "analyzerruncontrol.h",
-            "analyzerstartparameters.h",
-            "analyzerutils.cpp",
-            "analyzerutils.h",
-            "detailederrorview.cpp",
-            "detailederrorview.h",
-            "diagnosticlocation.cpp",
-            "diagnosticlocation.h",
-            "startremotedialog.cpp",
-            "startremotedialog.h",
-        ]
-    }
+        Properties {
+            condition: qbs.targetOS.contains("windows")
+            cpp.dynamicLibraries: [
+                "advapi32",
+                "ole32",
+                "shell32"
+            ]
+        }
 
-    Group {
-        name: "Unit tests"
-        condition: qtc.testsEnabled
-        files: [
-            "debuggerunittests.qrc",
-        ]
-    }
+        Group {
+            name: "Analyzer"
+            prefix: "analyzer/"
+            files: [
+                "analyzerbase.qrc",
+                "analyzerconstants.h",
+                "analyzermanager.h",
+                "analyzerrunconfigwidget.cpp",
+                "analyzerrunconfigwidget.h",
+                "analyzerruncontrol.cpp",
+                "analyzerruncontrol.h",
+                "analyzerstartparameters.h",
+                "analyzerutils.cpp",
+                "analyzerutils.h",
+                "detailederrorview.cpp",
+                "detailederrorview.h",
+                "diagnosticlocation.cpp",
+                "diagnosticlocation.h",
+                "startremotedialog.cpp",
+                "startremotedialog.h",
+            ]
+        }
 
-    Group {
-        name: "Unit test resources"
-        prefix: "unit-tests/"
-        fileTags: []
-        files: ["**/*"]
-    }
+        Group {
+            name: "Unit tests"
+            condition: qtc.testsEnabled
+            files: [
+                "debuggerunittests.qrc",
+            ]
+        }
 
-    Export {
-        Depends { name: "QtcSsh" }
-        Depends { name: "CPlusPlus" }
+        Group {
+            name: "Unit test resources"
+            prefix: "unit-tests/"
+            fileTags: []
+            files: ["**/*"]
+        }
+
+        Export {
+            Depends { name: "QtcSsh" }
+            Depends { name: "CPlusPlus" }
+        }
     }
 }
diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs
index 15cf7ccd607cd30aa6ff5f60b73e198ba4c40831..8794fa451f98d53ffc5a7d95fecb6ca3d9eca419 100644
--- a/src/plugins/projectexplorer/projectexplorer.qbs
+++ b/src/plugins/projectexplorer/projectexplorer.qbs
@@ -1,263 +1,267 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "ProjectExplorer"
 
-    Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "qml"] }
-    Depends { name: "Qt.quick" }
-    Depends { name: "Aggregation" }
-    Depends { name: "QtcSsh" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
-    Depends { name: "TextEditor" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "qml"] }
+        Depends { name: "Qt.quick" }
+        Depends { name: "Aggregation" }
+        Depends { name: "QtcSsh" }
+        Depends { name: "Utils" }
 
-    cpp.defines: base.concat("QTC_CPU=X86Architecture")
-    Properties {
-        condition: qbs.targetOS.contains("osx")
-        cpp.frameworks: base.concat(["Carbon"])
-    }
+        Depends { name: "Core" }
+        Depends { name: "TextEditor" }
 
-    Group {
-        name: "General"
-        files: [
-            "abi.cpp", "abi.h",
-            "abiwidget.cpp", "abiwidget.h",
-            "abstractprocessstep.cpp", "abstractprocessstep.h",
-            "allprojectsfilter.cpp", "allprojectsfilter.h",
-            "allprojectsfind.cpp", "allprojectsfind.h",
-            "ansifilterparser.cpp", "ansifilterparser.h",
-            "applicationlauncher.cpp", "applicationlauncher.h",
-            "appoutputpane.cpp", "appoutputpane.h",
-            "baseprojectwizarddialog.cpp", "baseprojectwizarddialog.h",
-            "buildconfiguration.cpp", "buildconfiguration.h",
-            "buildconfigurationmodel.cpp", "buildconfigurationmodel.h",
-            "buildenvironmentwidget.cpp", "buildenvironmentwidget.h",
-            "buildinfo.cpp", "buildinfo.h",
-            "buildmanager.cpp", "buildmanager.h",
-            "buildprogress.cpp", "buildprogress.h",
-            "buildsettingspropertiespage.cpp", "buildsettingspropertiespage.h",
-            "buildstep.cpp", "buildstep.h",
-            "buildsteplist.cpp", "buildsteplist.h",
-            "buildstepspage.cpp", "buildstepspage.h",
-            "buildtargetinfo.h",
-            "cesdkhandler.cpp", "cesdkhandler.h",
-            "clangparser.cpp", "clangparser.h",
-            "codestylesettingspropertiespage.cpp", "codestylesettingspropertiespage.h", "codestylesettingspropertiespage.ui",
-            "compileoutputwindow.cpp", "compileoutputwindow.h",
-            "configtaskhandler.cpp", "configtaskhandler.h",
-            "copytaskhandler.cpp", "copytaskhandler.h",
-            "currentprojectfilter.cpp", "currentprojectfilter.h",
-            "currentprojectfind.cpp", "currentprojectfind.h",
-            "customexecutableconfigurationwidget.cpp", "customexecutableconfigurationwidget.h",
-            "customexecutablerunconfiguration.cpp", "customexecutablerunconfiguration.h",
-            "customparser.cpp", "customparser.h",
-            "customparserconfigdialog.cpp", "customparserconfigdialog.h", "customparserconfigdialog.ui",
-            "customtoolchain.cpp", "customtoolchain.h",
-            "dependenciespanel.cpp", "dependenciespanel.h",
-            "deployablefile.cpp", "deployablefile.h",
-            "deployconfiguration.cpp", "deployconfiguration.h",
-            "deployconfigurationmodel.cpp", "deployconfigurationmodel.h",
-            "deploymentdata.h",
-            "deploymentdataview.cpp",
-            "deploymentdataview.h",
-            "deploymentdataview.ui",
-            "deploymentdatamodel.cpp",
-            "deploymentdatamodel.h",
-            "doubletabwidget.cpp", "doubletabwidget.h", "doubletabwidget.ui",
-            "editorconfiguration.cpp", "editorconfiguration.h",
-            "editorsettingspropertiespage.cpp", "editorsettingspropertiespage.h", "editorsettingspropertiespage.ui",
-            "environmentaspect.cpp", "environmentaspect.h",
-            "environmentaspectwidget.cpp", "environmentaspectwidget.h",
-            "environmentitemswidget.cpp", "environmentitemswidget.h",
-            "environmentwidget.cpp", "environmentwidget.h",
-            "expanddata.cpp", "expanddata.h",
-            "extracompiler.cpp", "extracompiler.h",
-            "foldernavigationwidget.cpp", "foldernavigationwidget.h",
-            "gccparser.cpp", "gccparser.h",
-            "gcctoolchain.cpp", "gcctoolchain.h",
-            "gcctoolchainfactories.h",
-            "gnumakeparser.cpp", "gnumakeparser.h",
-            "headerpath.h",
-            "importwidget.cpp", "importwidget.h",
-            "ioutputparser.cpp", "ioutputparser.h",
-            "ipotentialkit.h",
-            "iprojectmanager.h",
-            "itaskhandler.h",
-            "kit.cpp", "kit.h",
-            "kitchooser.cpp", "kitchooser.h",
-            "kitconfigwidget.cpp", "kitconfigwidget.h",
-            "kitfeatureprovider.h",
-            "kitinformation.cpp", "kitinformation.h",
-            "kitinformationconfigwidget.cpp", "kitinformationconfigwidget.h",
-            "kitmanager.cpp", "kitmanager.h",
-            "kitmanagerconfigwidget.cpp", "kitmanagerconfigwidget.h",
-            "kitmodel.cpp", "kitmodel.h",
-            "kitoptionspage.cpp", "kitoptionspage.h",
-            "ldparser.cpp", "ldparser.h",
-            "linuxiccparser.cpp", "linuxiccparser.h",
-            "localapplicationruncontrol.cpp", "localapplicationruncontrol.h",
-            "localenvironmentaspect.cpp", "localenvironmentaspect.h",
-            "miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
-            "namedwidget.cpp", "namedwidget.h",
-            "nodesvisitor.cpp", "nodesvisitor.h",
-            "osparser.cpp", "osparser.h",
-            "panelswidget.cpp", "panelswidget.h",
-            "processparameters.cpp", "processparameters.h",
-            "processstep.cpp", "processstep.h", "processstep.ui",
-            "project.cpp", "project.h",
-            "projectconfiguration.cpp", "projectconfiguration.h",
-            "projectexplorer.cpp", "projectexplorer.h",
-            "projectexplorer.qrc",
-            "projectexplorer_export.h",
-            "projectexplorer_global.h",
-            "projectexplorerconstants.h",
-            "projectexplorericons.h", "projectexplorericons.cpp",
-            "projectexplorersettings.h",
-            "projectexplorersettingspage.cpp", "projectexplorersettingspage.h", "projectexplorersettingspage.ui",
-            "projectfilewizardextension.cpp", "projectfilewizardextension.h",
-            "projectimporter.cpp", "projectimporter.h",
-            "projectmacroexpander.cpp", "projectmacroexpander.h",
-            "projectmodels.cpp", "projectmodels.h",
-            "projectnodes.cpp", "projectnodes.h",
-            "projectpanelfactory.cpp", "projectpanelfactory.h",
-            "projecttree.cpp",
-            "projecttree.h",
-            "projecttreewidget.cpp", "projecttreewidget.h",
-            "projectwindow.cpp", "projectwindow.h",
-            "projectwizardpage.cpp", "projectwizardpage.h", "projectwizardpage.ui",
-            "propertiespanel.cpp", "propertiespanel.h",
-            "removetaskhandler.cpp", "removetaskhandler.h",
-            "runnables.cpp", "runnables.h",
-            "runconfiguration.cpp", "runconfiguration.h",
-            "runconfigurationaspects.cpp", "runconfigurationaspects.h",
-            "runconfigurationmodel.cpp", "runconfigurationmodel.h",
-            "runsettingspropertiespage.cpp", "runsettingspropertiespage.h",
-            "selectablefilesmodel.cpp", "selectablefilesmodel.h",
-            "session.cpp", "session.h",
-            "sessiondialog.cpp", "sessiondialog.h", "sessiondialog.ui",
-            "settingsaccessor.cpp", "settingsaccessor.h",
-            "showineditortaskhandler.cpp", "showineditortaskhandler.h",
-            "showoutputtaskhandler.cpp", "showoutputtaskhandler.h",
-            "target.cpp", "target.h",
-            "targetselector.cpp", "targetselector.h",
-            "targetsettingspanel.cpp", "targetsettingspanel.h",
-            "targetsettingswidget.cpp", "targetsettingswidget.h",
-            "targetsetuppage.cpp", "targetsetuppage.h",
-            "targetsetupwidget.cpp", "targetsetupwidget.h",
-            "task.cpp", "task.h",
-            "taskhub.cpp", "taskhub.h",
-            "taskmodel.cpp", "taskmodel.h",
-            "taskwindow.cpp", "taskwindow.h",
-            "toolchain.cpp", "toolchain.h",
-            "toolchainconfigwidget.cpp", "toolchainconfigwidget.h",
-            "toolchainmanager.cpp", "toolchainmanager.h",
-            "toolchainoptionspage.cpp", "toolchainoptionspage.h",
-            "unconfiguredprojectpanel.cpp", "unconfiguredprojectpanel.h",
-            "vcsannotatetaskhandler.cpp", "vcsannotatetaskhandler.h",
-            "waitforstopdialog.cpp", "waitforstopdialog.h",
-            "xcodebuildparser.cpp", "xcodebuildparser.h"
-        ]
-    }
+        cpp.defines: base.concat("QTC_CPU=X86Architecture")
+        Properties {
+            condition: qbs.targetOS.contains("osx")
+            cpp.frameworks: base.concat(["Carbon"])
+        }
 
-    Group {
-        name: "Project Welcome Page"
-        files: [
-            "projectwelcomepage.cpp",
-            "projectwelcomepage.h"
-        ]
-    }
+        Group {
+            name: "General"
+            files: [
+                "abi.cpp", "abi.h",
+                "abiwidget.cpp", "abiwidget.h",
+                "abstractprocessstep.cpp", "abstractprocessstep.h",
+                "allprojectsfilter.cpp", "allprojectsfilter.h",
+                "allprojectsfind.cpp", "allprojectsfind.h",
+                "ansifilterparser.cpp", "ansifilterparser.h",
+                "applicationlauncher.cpp", "applicationlauncher.h",
+                "appoutputpane.cpp", "appoutputpane.h",
+                "baseprojectwizarddialog.cpp", "baseprojectwizarddialog.h",
+                "buildconfiguration.cpp", "buildconfiguration.h",
+                "buildconfigurationmodel.cpp", "buildconfigurationmodel.h",
+                "buildenvironmentwidget.cpp", "buildenvironmentwidget.h",
+                "buildinfo.cpp", "buildinfo.h",
+                "buildmanager.cpp", "buildmanager.h",
+                "buildprogress.cpp", "buildprogress.h",
+                "buildsettingspropertiespage.cpp", "buildsettingspropertiespage.h",
+                "buildstep.cpp", "buildstep.h",
+                "buildsteplist.cpp", "buildsteplist.h",
+                "buildstepspage.cpp", "buildstepspage.h",
+                "buildtargetinfo.h",
+                "cesdkhandler.cpp", "cesdkhandler.h",
+                "clangparser.cpp", "clangparser.h",
+                "codestylesettingspropertiespage.cpp", "codestylesettingspropertiespage.h", "codestylesettingspropertiespage.ui",
+                "compileoutputwindow.cpp", "compileoutputwindow.h",
+                "configtaskhandler.cpp", "configtaskhandler.h",
+                "copytaskhandler.cpp", "copytaskhandler.h",
+                "currentprojectfilter.cpp", "currentprojectfilter.h",
+                "currentprojectfind.cpp", "currentprojectfind.h",
+                "customexecutableconfigurationwidget.cpp", "customexecutableconfigurationwidget.h",
+                "customexecutablerunconfiguration.cpp", "customexecutablerunconfiguration.h",
+                "customparser.cpp", "customparser.h",
+                "customparserconfigdialog.cpp", "customparserconfigdialog.h", "customparserconfigdialog.ui",
+                "customtoolchain.cpp", "customtoolchain.h",
+                "dependenciespanel.cpp", "dependenciespanel.h",
+                "deployablefile.cpp", "deployablefile.h",
+                "deployconfiguration.cpp", "deployconfiguration.h",
+                "deployconfigurationmodel.cpp", "deployconfigurationmodel.h",
+                "deploymentdata.h",
+                "deploymentdataview.cpp",
+                "deploymentdataview.h",
+                "deploymentdataview.ui",
+                "deploymentdatamodel.cpp",
+                "deploymentdatamodel.h",
+                "doubletabwidget.cpp", "doubletabwidget.h", "doubletabwidget.ui",
+                "editorconfiguration.cpp", "editorconfiguration.h",
+                "editorsettingspropertiespage.cpp", "editorsettingspropertiespage.h", "editorsettingspropertiespage.ui",
+                "environmentaspect.cpp", "environmentaspect.h",
+                "environmentaspectwidget.cpp", "environmentaspectwidget.h",
+                "environmentitemswidget.cpp", "environmentitemswidget.h",
+                "environmentwidget.cpp", "environmentwidget.h",
+                "expanddata.cpp", "expanddata.h",
+                "extracompiler.cpp", "extracompiler.h",
+                "foldernavigationwidget.cpp", "foldernavigationwidget.h",
+                "gccparser.cpp", "gccparser.h",
+                "gcctoolchain.cpp", "gcctoolchain.h",
+                "gcctoolchainfactories.h",
+                "gnumakeparser.cpp", "gnumakeparser.h",
+                "headerpath.h",
+                "importwidget.cpp", "importwidget.h",
+                "ioutputparser.cpp", "ioutputparser.h",
+                "ipotentialkit.h",
+                "iprojectmanager.h",
+                "itaskhandler.h",
+                "kit.cpp", "kit.h",
+                "kitchooser.cpp", "kitchooser.h",
+                "kitconfigwidget.cpp", "kitconfigwidget.h",
+                "kitfeatureprovider.h",
+                "kitinformation.cpp", "kitinformation.h",
+                "kitinformationconfigwidget.cpp", "kitinformationconfigwidget.h",
+                "kitmanager.cpp", "kitmanager.h",
+                "kitmanagerconfigwidget.cpp", "kitmanagerconfigwidget.h",
+                "kitmodel.cpp", "kitmodel.h",
+                "kitoptionspage.cpp", "kitoptionspage.h",
+                "ldparser.cpp", "ldparser.h",
+                "linuxiccparser.cpp", "linuxiccparser.h",
+                "localapplicationruncontrol.cpp", "localapplicationruncontrol.h",
+                "localenvironmentaspect.cpp", "localenvironmentaspect.h",
+                "miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
+                "namedwidget.cpp", "namedwidget.h",
+                "nodesvisitor.cpp", "nodesvisitor.h",
+                "osparser.cpp", "osparser.h",
+                "panelswidget.cpp", "panelswidget.h",
+                "processparameters.cpp", "processparameters.h",
+                "processstep.cpp", "processstep.h", "processstep.ui",
+                "project.cpp", "project.h",
+                "projectconfiguration.cpp", "projectconfiguration.h",
+                "projectexplorer.cpp", "projectexplorer.h",
+                "projectexplorer.qrc",
+                "projectexplorer_export.h",
+                "projectexplorer_global.h",
+                "projectexplorerconstants.h",
+                "projectexplorericons.h", "projectexplorericons.cpp",
+                "projectexplorersettings.h",
+                "projectexplorersettingspage.cpp", "projectexplorersettingspage.h", "projectexplorersettingspage.ui",
+                "projectfilewizardextension.cpp", "projectfilewizardextension.h",
+                "projectimporter.cpp", "projectimporter.h",
+                "projectmacroexpander.cpp", "projectmacroexpander.h",
+                "projectmodels.cpp", "projectmodels.h",
+                "projectnodes.cpp", "projectnodes.h",
+                "projectpanelfactory.cpp", "projectpanelfactory.h",
+                "projecttree.cpp",
+                "projecttree.h",
+                "projecttreewidget.cpp", "projecttreewidget.h",
+                "projectwindow.cpp", "projectwindow.h",
+                "projectwizardpage.cpp", "projectwizardpage.h", "projectwizardpage.ui",
+                "propertiespanel.cpp", "propertiespanel.h",
+                "removetaskhandler.cpp", "removetaskhandler.h",
+                "runnables.cpp", "runnables.h",
+                "runconfiguration.cpp", "runconfiguration.h",
+                "runconfigurationaspects.cpp", "runconfigurationaspects.h",
+                "runconfigurationmodel.cpp", "runconfigurationmodel.h",
+                "runsettingspropertiespage.cpp", "runsettingspropertiespage.h",
+                "selectablefilesmodel.cpp", "selectablefilesmodel.h",
+                "session.cpp", "session.h",
+                "sessiondialog.cpp", "sessiondialog.h", "sessiondialog.ui",
+                "settingsaccessor.cpp", "settingsaccessor.h",
+                "showineditortaskhandler.cpp", "showineditortaskhandler.h",
+                "showoutputtaskhandler.cpp", "showoutputtaskhandler.h",
+                "target.cpp", "target.h",
+                "targetselector.cpp", "targetselector.h",
+                "targetsettingspanel.cpp", "targetsettingspanel.h",
+                "targetsettingswidget.cpp", "targetsettingswidget.h",
+                "targetsetuppage.cpp", "targetsetuppage.h",
+                "targetsetupwidget.cpp", "targetsetupwidget.h",
+                "task.cpp", "task.h",
+                "taskhub.cpp", "taskhub.h",
+                "taskmodel.cpp", "taskmodel.h",
+                "taskwindow.cpp", "taskwindow.h",
+                "toolchain.cpp", "toolchain.h",
+                "toolchainconfigwidget.cpp", "toolchainconfigwidget.h",
+                "toolchainmanager.cpp", "toolchainmanager.h",
+                "toolchainoptionspage.cpp", "toolchainoptionspage.h",
+                "unconfiguredprojectpanel.cpp", "unconfiguredprojectpanel.h",
+                "vcsannotatetaskhandler.cpp", "vcsannotatetaskhandler.h",
+                "waitforstopdialog.cpp", "waitforstopdialog.h",
+                "xcodebuildparser.cpp", "xcodebuildparser.h"
+            ]
+        }
 
-    Group {
-        name: "JsonWizard"
-        prefix: "jsonwizard/"
-        files: [
-            "jsonfieldpage.cpp", "jsonfieldpage_p.h", "jsonfieldpage.h",
-            "jsonfilepage.cpp", "jsonfilepage.h",
-            "jsonkitspage.cpp", "jsonkitspage.h",
-            "jsonprojectpage.cpp", "jsonprojectpage.h",
-            "jsonsummarypage.cpp", "jsonsummarypage.h",
-            "jsonwizard.cpp", "jsonwizard.h",
-            "jsonwizardfactory.cpp", "jsonwizardfactory.h",
-            "jsonwizardfilegenerator.cpp", "jsonwizardfilegenerator.h",
-            "jsonwizardgeneratorfactory.cpp", "jsonwizardgeneratorfactory.h",
-            "jsonwizardpagefactory.cpp", "jsonwizardpagefactory.h",
-            "jsonwizardpagefactory_p.cpp", "jsonwizardpagefactory_p.h",
-            "jsonwizardscannergenerator.cpp", "jsonwizardscannergenerator.h"
-        ]
-    }
+        Group {
+            name: "Project Welcome Page"
+            files: [
+                "projectwelcomepage.cpp",
+                "projectwelcomepage.h"
+            ]
+        }
 
-    Group {
-        name: "CustomWizard"
-        prefix: "customwizard/"
-        files: [
-            "customwizard.cpp", "customwizard.h",
-            "customwizardpage.cpp", "customwizardpage.h",
-            "customwizardparameters.cpp", "customwizardparameters.h",
-            "customwizardscriptgenerator.cpp", "customwizardscriptgenerator.h"
-        ]
-    }
+        Group {
+            name: "JsonWizard"
+            prefix: "jsonwizard/"
+            files: [
+                "jsonfieldpage.cpp", "jsonfieldpage_p.h", "jsonfieldpage.h",
+                "jsonfilepage.cpp", "jsonfilepage.h",
+                "jsonkitspage.cpp", "jsonkitspage.h",
+                "jsonprojectpage.cpp", "jsonprojectpage.h",
+                "jsonsummarypage.cpp", "jsonsummarypage.h",
+                "jsonwizard.cpp", "jsonwizard.h",
+                "jsonwizardfactory.cpp", "jsonwizardfactory.h",
+                "jsonwizardfilegenerator.cpp", "jsonwizardfilegenerator.h",
+                "jsonwizardgeneratorfactory.cpp", "jsonwizardgeneratorfactory.h",
+                "jsonwizardpagefactory.cpp", "jsonwizardpagefactory.h",
+                "jsonwizardpagefactory_p.cpp", "jsonwizardpagefactory_p.h",
+                "jsonwizardscannergenerator.cpp", "jsonwizardscannergenerator.h"
+            ]
+        }
 
-    Group {
-        name: "Device Support"
-        prefix: "devicesupport/"
-        files: [
-            "desktopdevice.cpp", "desktopdevice.h",
-            "desktopdevicefactory.cpp", "desktopdevicefactory.h",
-            "deviceapplicationrunner.cpp", "deviceapplicationrunner.h",
-            "devicecheckbuildstep.cpp", "devicecheckbuildstep.h",
-            "devicefactoryselectiondialog.cpp", "devicefactoryselectiondialog.h", "devicefactoryselectiondialog.ui",
-            "devicemanager.cpp", "devicemanager.h",
-            "devicemanagermodel.cpp", "devicemanagermodel.h",
-            "deviceprocess.cpp", "deviceprocess.h",
-            "deviceprocessesdialog.cpp", "deviceprocessesdialog.h",
-            "deviceprocesslist.cpp", "deviceprocesslist.h",
-            "devicesettingspage.cpp", "devicesettingspage.h",
-            "devicesettingswidget.cpp", "devicesettingswidget.h", "devicesettingswidget.ui",
-            "devicetestdialog.cpp", "devicetestdialog.h", "devicetestdialog.ui",
-            "deviceusedportsgatherer.cpp", "deviceusedportsgatherer.h",
-            "idevice.cpp", "idevice.h",
-            "idevicefactory.cpp", "idevicefactory.h",
-            "idevicewidget.h",
-            "desktopdeviceprocess.cpp", "desktopdeviceprocess.h",
-            "localprocesslist.cpp", "localprocesslist.h",
-            "sshdeviceprocess.cpp", "sshdeviceprocess.h",
-            "sshdeviceprocesslist.cpp", "sshdeviceprocesslist.h",
-            "desktopprocesssignaloperation.cpp", "desktopprocesssignaloperation.h",
-            "desktopdeviceconfigurationwidget.cpp", "desktopdeviceconfigurationwidget.h", "desktopdeviceconfigurationwidget.ui"
-        ]
-    }
+        Group {
+            name: "CustomWizard"
+            prefix: "customwizard/"
+            files: [
+                "customwizard.cpp", "customwizard.h",
+                "customwizardpage.cpp", "customwizardpage.h",
+                "customwizardparameters.cpp", "customwizardparameters.h",
+                "customwizardscriptgenerator.cpp", "customwizardscriptgenerator.h"
+            ]
+        }
 
-    Group {
-        name: "Images"
-        prefix: "images/"
-        files: ["*.png"]
-    }
+        Group {
+            name: "Device Support"
+            prefix: "devicesupport/"
+            files: [
+                "desktopdevice.cpp", "desktopdevice.h",
+                "desktopdevicefactory.cpp", "desktopdevicefactory.h",
+                "deviceapplicationrunner.cpp", "deviceapplicationrunner.h",
+                "devicecheckbuildstep.cpp", "devicecheckbuildstep.h",
+                "devicefactoryselectiondialog.cpp", "devicefactoryselectiondialog.h", "devicefactoryselectiondialog.ui",
+                "devicemanager.cpp", "devicemanager.h",
+                "devicemanagermodel.cpp", "devicemanagermodel.h",
+                "deviceprocess.cpp", "deviceprocess.h",
+                "deviceprocessesdialog.cpp", "deviceprocessesdialog.h",
+                "deviceprocesslist.cpp", "deviceprocesslist.h",
+                "devicesettingspage.cpp", "devicesettingspage.h",
+                "devicesettingswidget.cpp", "devicesettingswidget.h", "devicesettingswidget.ui",
+                "devicetestdialog.cpp", "devicetestdialog.h", "devicetestdialog.ui",
+                "deviceusedportsgatherer.cpp", "deviceusedportsgatherer.h",
+                "idevice.cpp", "idevice.h",
+                "idevicefactory.cpp", "idevicefactory.h",
+                "idevicewidget.h",
+                "desktopdeviceprocess.cpp", "desktopdeviceprocess.h",
+                "localprocesslist.cpp", "localprocesslist.h",
+                "sshdeviceprocess.cpp", "sshdeviceprocess.h",
+                "sshdeviceprocesslist.cpp", "sshdeviceprocesslist.h",
+                "desktopprocesssignaloperation.cpp", "desktopprocesssignaloperation.h",
+                "desktopdeviceconfigurationwidget.cpp", "desktopdeviceconfigurationwidget.h", "desktopdeviceconfigurationwidget.ui"
+            ]
+        }
 
-    Group {
-        name: "WindowsToolChains"
-        condition: qbs.targetOS.contains("windows") || qtc.testsEnabled
-        files: [
-           "abstractmsvctoolchain.cpp",
-           "abstractmsvctoolchain.h",
-           "msvcparser.cpp",
-           "msvcparser.h",
-           "msvctoolchain.cpp",
-           "msvctoolchain.h",
-           "wincetoolchain.cpp",
-           "wincetoolchain.h",
-           "windebuginterface.cpp",
-           "windebuginterface.h",
-        ]
-    }
+        Group {
+            name: "Images"
+            prefix: "images/"
+            files: ["*.png"]
+        }
 
-    Group {
-        name: "Tests"
-        condition: qtc.testsEnabled
-        files: ["outputparser_test.h", "outputparser_test.cpp"]
-    }
+        Group {
+            name: "WindowsToolChains"
+            condition: qbs.targetOS.contains("windows") || qtc.testsEnabled
+            files: [
+                "abstractmsvctoolchain.cpp",
+                "abstractmsvctoolchain.h",
+                "msvcparser.cpp",
+                "msvcparser.h",
+                "msvctoolchain.cpp",
+                "msvctoolchain.h",
+                "wincetoolchain.cpp",
+                "wincetoolchain.h",
+                "windebuginterface.cpp",
+                "windebuginterface.h",
+            ]
+        }
+
+        Group {
+            name: "Tests"
+            condition: qtc.testsEnabled
+            files: ["outputparser_test.h", "outputparser_test.cpp"]
+        }
 
-    Export {
-        Depends { name: "Qt.network" }
+        Export {
+            Depends { name: "Qt.network" }
+        }
     }
 }
diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs
index 9286e318173dc655986bf25391a9a0d09dd015b3..a6aac164ac68c5170d15ed121e5c76575fc2dfa3 100644
--- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs
+++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs
@@ -1,111 +1,115 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "QmakeProjectManager"
 
-    Depends { name: "Qt"; submodules: ["widgets", "network"] }
-    Depends { name: "QmlJS" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "QtSupport" }
-    Depends { name: "CppTools" }
-    Depends { name: "TextEditor" }
-    Depends { name: "ResourceEditor" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "network"] }
+        Depends { name: "QmlJS" }
+        Depends { name: "Utils" }
 
-    pluginRecommends: [
-        "Designer"
-    ]
+        Depends { name: "Core" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "QtSupport" }
+        Depends { name: "CppTools" }
+        Depends { name: "TextEditor" }
+        Depends { name: "ResourceEditor" }
 
-    Group {
-        name: "General"
-        files: [
-            "addlibrarywizard.cpp", "addlibrarywizard.h",
-            "desktopqmakerunconfiguration.cpp", "desktopqmakerunconfiguration.h",
-            "externaleditors.cpp", "externaleditors.h",
-            "findqmakeprofiles.cpp", "findqmakeprofiles.h",
-            "librarydetailscontroller.cpp", "librarydetailscontroller.h",
-            "librarydetailswidget.ui",
-            "makestep.cpp", "makestep.h", "makestep.ui",
-            "makefileparse.cpp", "makefileparse.h",
-            "profilecompletionassist.cpp", "profilecompletionassist.h",
-            "profileeditor.cpp", "profileeditor.h",
-            "profilehighlighter.cpp", "profilehighlighter.h",
-            "profilehoverhandler.cpp", "profilehoverhandler.h",
-            "qmakebuildinfo.h",
-            "qmakekitconfigwidget.cpp", "qmakekitconfigwidget.h",
-            "qmakekitinformation.cpp", "qmakekitinformation.h",
-            "qmakeparser.cpp", "qmakeparser.h",
-            "qmakeprojectimporter.cpp", "qmakeprojectimporter.h",
-            "qmakerunconfigurationfactory.cpp", "qmakerunconfigurationfactory.h",
-            "qmakestep.cpp", "qmakestep.h", "qmakestep.ui",
-            "qmakebuildconfiguration.cpp", "qmakebuildconfiguration.h",
-            "qmakenodes.cpp", "qmakenodes.h",
-            "qmakeproject.cpp", "qmakeproject.h",
-            "qmakeprojectconfigwidget.cpp", "qmakeprojectconfigwidget.h", "qmakeprojectconfigwidget.ui",
-            "qmakeprojectmanager.cpp", "qmakeprojectmanager.h",
-            "qmakeprojectmanager.qrc",
-            "qmakeprojectmanager_global.h",
-            "qmakeprojectmanagerconstants.h",
-            "qmakeprojectmanagerplugin.cpp", "qmakeprojectmanagerplugin.h",
-            "qtmodulesinfo.cpp", "qtmodulesinfo.h",
+        pluginRecommends: [
+            "Designer"
         ]
-    }
 
-    Group {
-        name: "Custom Widget Wizard"
-        prefix: "customwidgetwizard/"
-        files: [
-            "classdefinition.cpp", "classdefinition.h", "classdefinition.ui",
-            "classlist.cpp", "classlist.h",
-            "customwidgetpluginwizardpage.cpp", "customwidgetpluginwizardpage.h", "customwidgetpluginwizardpage.ui",
-            "customwidgetwidgetswizardpage.cpp", "customwidgetwidgetswizardpage.h", "customwidgetwidgetswizardpage.ui",
-            "customwidgetwizard.cpp", "customwidgetwizard.h",
-            "customwidgetwizarddialog.cpp", "customwidgetwizarddialog.h",
-            "filenamingparameters.h",
-            "plugingenerator.cpp", "plugingenerator.h",
-            "pluginoptions.h"
-        ]
-    }
+        Group {
+            name: "General"
+            files: [
+                "addlibrarywizard.cpp", "addlibrarywizard.h",
+                "desktopqmakerunconfiguration.cpp", "desktopqmakerunconfiguration.h",
+                "externaleditors.cpp", "externaleditors.h",
+                "findqmakeprofiles.cpp", "findqmakeprofiles.h",
+                "librarydetailscontroller.cpp", "librarydetailscontroller.h",
+                "librarydetailswidget.ui",
+                "makestep.cpp", "makestep.h", "makestep.ui",
+                "makefileparse.cpp", "makefileparse.h",
+                "profilecompletionassist.cpp", "profilecompletionassist.h",
+                "profileeditor.cpp", "profileeditor.h",
+                "profilehighlighter.cpp", "profilehighlighter.h",
+                "profilehoverhandler.cpp", "profilehoverhandler.h",
+                "qmakebuildinfo.h",
+                "qmakekitconfigwidget.cpp", "qmakekitconfigwidget.h",
+                "qmakekitinformation.cpp", "qmakekitinformation.h",
+                "qmakeparser.cpp", "qmakeparser.h",
+                "qmakeprojectimporter.cpp", "qmakeprojectimporter.h",
+                "qmakerunconfigurationfactory.cpp", "qmakerunconfigurationfactory.h",
+                "qmakestep.cpp", "qmakestep.h", "qmakestep.ui",
+                "qmakebuildconfiguration.cpp", "qmakebuildconfiguration.h",
+                "qmakenodes.cpp", "qmakenodes.h",
+                "qmakeproject.cpp", "qmakeproject.h",
+                "qmakeprojectconfigwidget.cpp", "qmakeprojectconfigwidget.h", "qmakeprojectconfigwidget.ui",
+                "qmakeprojectmanager.cpp", "qmakeprojectmanager.h",
+                "qmakeprojectmanager.qrc",
+                "qmakeprojectmanager_global.h",
+                "qmakeprojectmanagerconstants.h",
+                "qmakeprojectmanagerplugin.cpp", "qmakeprojectmanagerplugin.h",
+                "qtmodulesinfo.cpp", "qtmodulesinfo.h",
+            ]
+        }
 
-    Group {
-        name: "Wizards"
-        prefix: "wizards/"
-        files: [
-            "filespage.cpp", "filespage.h",
-            "guiappwizard.cpp", "guiappwizard.h",
-            "guiappwizarddialog.cpp", "guiappwizarddialog.h",
-            "libraryparameters.cpp", "libraryparameters.h",
-            "librarywizard.cpp", "librarywizard.h",
-            "librarywizarddialog.cpp", "librarywizarddialog.h",
-            "modulespage.cpp", "modulespage.h",
-            "qtprojectparameters.cpp", "qtprojectparameters.h",
-            "qtwizard.cpp", "qtwizard.h",
-            "subdirsprojectwizard.cpp", "subdirsprojectwizard.h",
-            "subdirsprojectwizarddialog.cpp", "subdirsprojectwizarddialog.h",
-            "simpleprojectwizard.cpp", "simpleprojectwizard.h",
-            "testwizard.cpp", "testwizard.h",
-            "testwizarddialog.cpp", "testwizarddialog.h",
-            "testwizardpage.cpp", "testwizardpage.h",
-            "testwizardpage.ui",
-            "wizards.qrc"
-        ]
-    }
+        Group {
+            name: "Custom Widget Wizard"
+            prefix: "customwidgetwizard/"
+            files: [
+                "classdefinition.cpp", "classdefinition.h", "classdefinition.ui",
+                "classlist.cpp", "classlist.h",
+                "customwidgetpluginwizardpage.cpp", "customwidgetpluginwizardpage.h", "customwidgetpluginwizardpage.ui",
+                "customwidgetwidgetswizardpage.cpp", "customwidgetwidgetswizardpage.h", "customwidgetwidgetswizardpage.ui",
+                "customwidgetwizard.cpp", "customwidgetwizard.h",
+                "customwidgetwizarddialog.cpp", "customwidgetwizarddialog.h",
+                "filenamingparameters.h",
+                "plugingenerator.cpp", "plugingenerator.h",
+                "pluginoptions.h"
+            ]
+        }
 
-    Group {
-        name: "Wizard Images"
-        prefix: "wizards/images/"
-        files: [
-            "console.png",
-            "gui.png",
-            "lib.png",
-            "qtquickapp.png",
-        ]
-    }
+        Group {
+            name: "Wizards"
+            prefix: "wizards/"
+            files: [
+                "filespage.cpp", "filespage.h",
+                "guiappwizard.cpp", "guiappwizard.h",
+                "guiappwizarddialog.cpp", "guiappwizarddialog.h",
+                "libraryparameters.cpp", "libraryparameters.h",
+                "librarywizard.cpp", "librarywizard.h",
+                "librarywizarddialog.cpp", "librarywizarddialog.h",
+                "modulespage.cpp", "modulespage.h",
+                "qtprojectparameters.cpp", "qtprojectparameters.h",
+                "qtwizard.cpp", "qtwizard.h",
+                "subdirsprojectwizard.cpp", "subdirsprojectwizard.h",
+                "subdirsprojectwizarddialog.cpp", "subdirsprojectwizarddialog.h",
+                "simpleprojectwizard.cpp", "simpleprojectwizard.h",
+                "testwizard.cpp", "testwizard.h",
+                "testwizarddialog.cpp", "testwizarddialog.h",
+                "testwizardpage.cpp", "testwizardpage.h",
+                "testwizardpage.ui",
+                "wizards.qrc"
+            ]
+        }
+
+        Group {
+            name: "Wizard Images"
+            prefix: "wizards/images/"
+            files: [
+                "console.png",
+                "gui.png",
+                "lib.png",
+                "qtquickapp.png",
+            ]
+        }
 
-    Export {
-        Depends { name: "cpp" }
-        cpp.includePaths: [project.sharedSourcesDir]
+        Export {
+            Depends { name: "cpp" }
+            cpp.includePaths: [project.sharedSourcesDir]
+        }
     }
 }
diff --git a/src/plugins/qtsupport/qtsupport.qbs b/src/plugins/qtsupport/qtsupport.qbs
index 2a9e2d97412140f85f878828b340cb04940e2707..8673a0ffcbec2c4889b46d44c395f0ad91b3abf1 100644
--- a/src/plugins/qtsupport/qtsupport.qbs
+++ b/src/plugins/qtsupport/qtsupport.qbs
@@ -1,133 +1,137 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "QtSupport"
 
-    Depends { name: "Qt"; submodules: ["quick", "widgets", "xml"]; }
-    Depends { name: "QmlJS" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "CppTools" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["quick", "widgets", "xml"]; }
+        Depends { name: "QmlJS" }
+        Depends { name: "Utils" }
 
-    cpp.includePaths: base.concat([
-        project.sharedSourcesDir,
-    ])
+        Depends { name: "Core" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "CppTools" }
 
-    cpp.defines: base.concat([
-        "QMAKE_AS_LIBRARY",
-        "QMAKE_LIBRARY",
-        "PROPARSER_THREAD_SAFE",
-        "PROEVALUATOR_THREAD_SAFE",
-        "PROEVALUATOR_CUMULATIVE",
-        "QMAKE_BUILTIN_PRFS",
-        "PROEVALUATOR_SETENV"
-    ])
+        cpp.includePaths: base.concat([
+                                          project.sharedSourcesDir,
+                                      ])
 
-    Group {
-        name: "Shared"
-        prefix: project.sharedSourcesDir + "/proparser/"
-        files: [
-            "ioutils.cpp",
-            "ioutils.h",
-            "profileevaluator.cpp",
-            "profileevaluator.h",
-            "proitems.cpp",
-            "proitems.h",
-            "proparser.qrc",
-            "prowriter.cpp",
-            "prowriter.h",
-            "qmake_global.h",
-            "qmakebuiltins.cpp",
-            "qmakeevaluator.cpp",
-            "qmakeevaluator.h",
-            "qmakeevaluator_p.h",
-            "qmakeglobals.cpp",
-            "qmakeglobals.h",
-            "qmakeparser.cpp",
-            "qmakeparser.h",
-            "qmakevfs.cpp",
-            "qmakevfs.h",
-        ]
-    }
+        cpp.defines: base.concat([
+                                     "QMAKE_AS_LIBRARY",
+                                     "QMAKE_LIBRARY",
+                                     "PROPARSER_THREAD_SAFE",
+                                     "PROEVALUATOR_THREAD_SAFE",
+                                     "PROEVALUATOR_CUMULATIVE",
+                                     "QMAKE_BUILTIN_PRFS",
+                                     "PROEVALUATOR_SETENV"
+                                 ])
 
-    files: [
-        "baseqtversion.cpp",
-        "baseqtversion.h",
-        "codegenerator.cpp",
-        "codegenerator.h",
-        "codegensettings.cpp",
-        "codegensettings.h",
-        "codegensettingspage.cpp",
-        "codegensettingspage.h",
-        "codegensettingspagewidget.ui",
-        "qtconfigwidget.cpp",
-        "qtconfigwidget.h",
-        "qtsupport.qrc",
-        "exampleslistmodel.cpp",
-        "exampleslistmodel.h",
-        "profilereader.cpp",
-        "profilereader.h",
-        "qmldumptool.cpp",
-        "qmldumptool.h",
-        "qscxmlcgenerator.cpp",
-        "qscxmlcgenerator.h",
-        "qtkitconfigwidget.cpp",
-        "qtkitconfigwidget.h",
-        "qtkitinformation.cpp",
-        "qtkitinformation.h",
-        "qtoptionspage.cpp",
-        "qtoptionspage.h",
-        "qtoutputformatter.cpp",
-        "qtoutputformatter.h",
-        "qtparser.cpp",
-        "qtparser.h",
-        "qtsupport_global.h",
-        "qtsupportconstants.h",
-        "qtsupportplugin.cpp",
-        "qtsupportplugin.h",
-        "qtversionfactory.cpp",
-        "qtversionfactory.h",
-        "qtversioninfo.ui",
-        "qtversionmanager.cpp",
-        "qtversionmanager.h",
-        "qtversionmanager.ui",
-        "screenshotcropper.cpp",
-        "screenshotcropper.h",
-        "showbuildlog.ui",
-        "uicgenerator.cpp",
-        "uicgenerator.h",
-    ]
+        Group {
+            name: "Shared"
+            prefix: project.sharedSourcesDir + "/proparser/"
+            files: [
+                "ioutils.cpp",
+                "ioutils.h",
+                "profileevaluator.cpp",
+                "profileevaluator.h",
+                "proitems.cpp",
+                "proitems.h",
+                "proparser.qrc",
+                "prowriter.cpp",
+                "prowriter.h",
+                "qmake_global.h",
+                "qmakebuiltins.cpp",
+                "qmakeevaluator.cpp",
+                "qmakeevaluator.h",
+                "qmakeevaluator_p.h",
+                "qmakeglobals.cpp",
+                "qmakeglobals.h",
+                "qmakeparser.cpp",
+                "qmakeparser.h",
+                "qmakevfs.cpp",
+                "qmakevfs.h",
+            ]
+        }
 
-    Group {
-        name: "QtVersion"
         files: [
-            "desktopqtversion.cpp", "desktopqtversion.h",
-            "desktopqtversionfactory.cpp", "desktopqtversionfactory.h",
-            "winceqtversion.cpp", "winceqtversion.h",
-            "winceqtversionfactory.cpp", "winceqtversionfactory.h",
+            "baseqtversion.cpp",
+            "baseqtversion.h",
+            "codegenerator.cpp",
+            "codegenerator.h",
+            "codegensettings.cpp",
+            "codegensettings.h",
+            "codegensettingspage.cpp",
+            "codegensettingspage.h",
+            "codegensettingspagewidget.ui",
+            "qtconfigwidget.cpp",
+            "qtconfigwidget.h",
+            "qtsupport.qrc",
+            "exampleslistmodel.cpp",
+            "exampleslistmodel.h",
+            "profilereader.cpp",
+            "profilereader.h",
+            "qmldumptool.cpp",
+            "qmldumptool.h",
+            "qscxmlcgenerator.cpp",
+            "qscxmlcgenerator.h",
+            "qtkitconfigwidget.cpp",
+            "qtkitconfigwidget.h",
+            "qtkitinformation.cpp",
+            "qtkitinformation.h",
+            "qtoptionspage.cpp",
+            "qtoptionspage.h",
+            "qtoutputformatter.cpp",
+            "qtoutputformatter.h",
+            "qtparser.cpp",
+            "qtparser.h",
+            "qtsupport_global.h",
+            "qtsupportconstants.h",
+            "qtsupportplugin.cpp",
+            "qtsupportplugin.h",
+            "qtversionfactory.cpp",
+            "qtversionfactory.h",
+            "qtversioninfo.ui",
+            "qtversionmanager.cpp",
+            "qtversionmanager.h",
+            "qtversionmanager.ui",
+            "screenshotcropper.cpp",
+            "screenshotcropper.h",
+            "showbuildlog.ui",
+            "uicgenerator.cpp",
+            "uicgenerator.h",
         ]
-    }
 
-    Group {
-        name: "Getting Started Welcome Page"
-        files: [
-            "gettingstartedwelcomepage.cpp",
-            "gettingstartedwelcomepage.h"
-        ]
-    }
+        Group {
+            name: "QtVersion"
+            files: [
+                "desktopqtversion.cpp", "desktopqtversion.h",
+                "desktopqtversionfactory.cpp", "desktopqtversionfactory.h",
+                "winceqtversion.cpp", "winceqtversion.h",
+                "winceqtversionfactory.cpp", "winceqtversionfactory.h",
+            ]
+        }
 
+        Group {
+            name: "Getting Started Welcome Page"
+            files: [
+                "gettingstartedwelcomepage.cpp",
+                "gettingstartedwelcomepage.h"
+            ]
+        }
 
-    Export {
-        cpp.includePaths: "../../shared"
-        cpp.defines: [
-            "QMAKE_AS_LIBRARY",
-            "PROPARSER_THREAD_SAFE",
-            "PROEVALUATOR_CUMULATIVE",
-            "PROEVALUATOR_THREAD_SAFE",
-            "QMAKE_BUILTIN_PRFS",
-            "PROEVALUATOR_SETENV"
-        ]
+
+        Export {
+            cpp.includePaths: "../../shared"
+            cpp.defines: [
+                "QMAKE_AS_LIBRARY",
+                "PROPARSER_THREAD_SAFE",
+                "PROEVALUATOR_CUMULATIVE",
+                "PROEVALUATOR_THREAD_SAFE",
+                "QMAKE_BUILTIN_PRFS",
+                "PROEVALUATOR_SETENV"
+            ]
+        }
     }
 }
diff --git a/src/plugins/remotelinux/remotelinux.qbs b/src/plugins/remotelinux/remotelinux.qbs
index 5678b8890b7110295a8048568218ad05a0e8a9d3..5727355ea0daf87d7e57b722c59bcf3a9f37d62b 100644
--- a/src/plugins/remotelinux/remotelinux.qbs
+++ b/src/plugins/remotelinux/remotelinux.qbs
@@ -1,121 +1,124 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "RemoteLinux"
 
-    Depends { name: "Qt.widgets" }
-    Depends { name: "QtcSsh" }
-    Depends { name: "QmlDebug" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
-    Depends { name: "Debugger" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "QtSupport" }
-
-    files: [
-        "abstractpackagingstep.cpp",
-        "abstractpackagingstep.h",
-        "abstractremotelinuxdeployservice.cpp",
-        "abstractremotelinuxdeployservice.h",
-        "abstractremotelinuxdeploystep.cpp",
-        "abstractremotelinuxdeploystep.h",
-        "abstractremotelinuxrunsupport.cpp",
-        "abstractremotelinuxrunsupport.h",
-        "abstractuploadandinstallpackageservice.cpp",
-        "abstractuploadandinstallpackageservice.h",
-        "embeddedlinuxqtversion.cpp",
-        "embeddedlinuxqtversion.h",
-        "embeddedlinuxqtversionfactory.cpp",
-        "embeddedlinuxqtversionfactory.h",
-        "genericdirectuploadservice.cpp",
-        "genericdirectuploadservice.h",
-        "genericdirectuploadstep.cpp",
-        "genericdirectuploadstep.h",
-        "genericlinuxdeviceconfigurationfactory.cpp",
-        "genericlinuxdeviceconfigurationfactory.h",
-        "genericlinuxdeviceconfigurationwidget.cpp",
-        "genericlinuxdeviceconfigurationwidget.h",
-        "genericlinuxdeviceconfigurationwidget.ui",
-        "genericlinuxdeviceconfigurationwizard.cpp",
-        "genericlinuxdeviceconfigurationwizard.h",
-        "genericlinuxdeviceconfigurationwizardpages.cpp",
-        "genericlinuxdeviceconfigurationwizardpages.h",
-        "genericlinuxdeviceconfigurationwizardsetuppage.ui",
-        "genericremotelinuxdeploystepfactory.cpp",
-        "genericremotelinuxdeploystepfactory.h",
-        "linuxdevice.cpp",
-        "linuxdevice.h",
-        "linuxdeviceprocess.cpp",
-        "linuxdeviceprocess.h",
-        "linuxdevicetester.cpp",
-        "linuxdevicetester.h",
-        "packageuploader.cpp",
-        "packageuploader.h",
-        "publickeydeploymentdialog.cpp",
-        "publickeydeploymentdialog.h",
-        "remotelinux.qrc",
-        "remotelinux_constants.h",
-        "remotelinux_export.h",
-        "remotelinuxanalyzesupport.cpp",
-        "remotelinuxanalyzesupport.h",
-        "remotelinuxcheckforfreediskspaceservice.cpp",
-        "remotelinuxcheckforfreediskspaceservice.h",
-        "remotelinuxcheckforfreediskspacestep.cpp",
-        "remotelinuxcheckforfreediskspacestep.h",
-        "remotelinuxcheckforfreediskspacestepwidget.ui",
-        "remotelinuxcustomcommanddeploymentstep.cpp",
-        "remotelinuxcustomcommanddeploymentstep.h",
-        "remotelinuxcustomcommanddeployservice.cpp",
-        "remotelinuxcustomcommanddeployservice.h",
-        "remotelinuxcustomrunconfiguration.cpp",
-        "remotelinuxcustomrunconfiguration.h",
-        "remotelinuxcustomrunconfigurationwidget.ui",
-        "remotelinuxdebugsupport.cpp",
-        "remotelinuxdebugsupport.h",
-        "remotelinuxdeployconfiguration.cpp",
-        "remotelinuxdeployconfiguration.h",
-        "remotelinuxdeployconfigurationfactory.cpp",
-        "remotelinuxdeployconfigurationfactory.h",
-        "remotelinuxenvironmentaspect.cpp",
-        "remotelinuxenvironmentaspect.h",
-        "remotelinuxenvironmentaspectwidget.cpp",
-        "remotelinuxenvironmentaspectwidget.h",
-        "remotelinuxenvironmentreader.cpp",
-        "remotelinuxenvironmentreader.h",
-        "remotelinuxpackageinstaller.cpp",
-        "remotelinuxpackageinstaller.h",
-        "remotelinuxplugin.cpp",
-        "remotelinuxplugin.h",
-        "remotelinuxrunconfiguration.cpp",
-        "remotelinuxrunconfiguration.h",
-        "remotelinuxrunconfigurationfactory.cpp",
-        "remotelinuxrunconfigurationfactory.h",
-        "remotelinuxrunconfigurationwidget.cpp",
-        "remotelinuxrunconfigurationwidget.h",
-        "remotelinuxruncontrol.cpp",
-        "remotelinuxruncontrol.h",
-        "remotelinuxruncontrolfactory.cpp",
-        "remotelinuxruncontrolfactory.h",
-        "remotelinuxsignaloperation.cpp",
-        "remotelinuxsignaloperation.h",
-        "remotelinuxutils.cpp",
-        "remotelinuxutils.h",
-        "sshkeydeployer.cpp",
-        "sshkeydeployer.h",
-        "tarpackagecreationstep.cpp",
-        "tarpackagecreationstep.h",
-        "typespecificdeviceconfigurationlistmodel.cpp",
-        "typespecificdeviceconfigurationlistmodel.h",
-        "uploadandinstalltarpackagestep.cpp",
-        "uploadandinstalltarpackagestep.h",
-        "images/embeddedtarget.png"
-    ]
+    QtcPlugin {
+        Depends { name: "Qt.widgets" }
+        Depends { name: "QtcSsh" }
+        Depends { name: "QmlDebug" }
+        Depends { name: "Utils" }
 
-    Export {
-        Depends { name: "Debugger" }
         Depends { name: "Core" }
-        Depends { name: "QtcSsh" }
+        Depends { name: "Debugger" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "QtSupport" }
+
+        files: [
+            "abstractpackagingstep.cpp",
+            "abstractpackagingstep.h",
+            "abstractremotelinuxdeployservice.cpp",
+            "abstractremotelinuxdeployservice.h",
+            "abstractremotelinuxdeploystep.cpp",
+            "abstractremotelinuxdeploystep.h",
+            "abstractremotelinuxrunsupport.cpp",
+            "abstractremotelinuxrunsupport.h",
+            "abstractuploadandinstallpackageservice.cpp",
+            "abstractuploadandinstallpackageservice.h",
+            "embeddedlinuxqtversion.cpp",
+            "embeddedlinuxqtversion.h",
+            "embeddedlinuxqtversionfactory.cpp",
+            "embeddedlinuxqtversionfactory.h",
+            "genericdirectuploadservice.cpp",
+            "genericdirectuploadservice.h",
+            "genericdirectuploadstep.cpp",
+            "genericdirectuploadstep.h",
+            "genericlinuxdeviceconfigurationfactory.cpp",
+            "genericlinuxdeviceconfigurationfactory.h",
+            "genericlinuxdeviceconfigurationwidget.cpp",
+            "genericlinuxdeviceconfigurationwidget.h",
+            "genericlinuxdeviceconfigurationwidget.ui",
+            "genericlinuxdeviceconfigurationwizard.cpp",
+            "genericlinuxdeviceconfigurationwizard.h",
+            "genericlinuxdeviceconfigurationwizardpages.cpp",
+            "genericlinuxdeviceconfigurationwizardpages.h",
+            "genericlinuxdeviceconfigurationwizardsetuppage.ui",
+            "genericremotelinuxdeploystepfactory.cpp",
+            "genericremotelinuxdeploystepfactory.h",
+            "linuxdevice.cpp",
+            "linuxdevice.h",
+            "linuxdeviceprocess.cpp",
+            "linuxdeviceprocess.h",
+            "linuxdevicetester.cpp",
+            "linuxdevicetester.h",
+            "packageuploader.cpp",
+            "packageuploader.h",
+            "publickeydeploymentdialog.cpp",
+            "publickeydeploymentdialog.h",
+            "remotelinux.qrc",
+            "remotelinux_constants.h",
+            "remotelinux_export.h",
+            "remotelinuxanalyzesupport.cpp",
+            "remotelinuxanalyzesupport.h",
+            "remotelinuxcheckforfreediskspaceservice.cpp",
+            "remotelinuxcheckforfreediskspaceservice.h",
+            "remotelinuxcheckforfreediskspacestep.cpp",
+            "remotelinuxcheckforfreediskspacestep.h",
+            "remotelinuxcheckforfreediskspacestepwidget.ui",
+            "remotelinuxcustomcommanddeploymentstep.cpp",
+            "remotelinuxcustomcommanddeploymentstep.h",
+            "remotelinuxcustomcommanddeployservice.cpp",
+            "remotelinuxcustomcommanddeployservice.h",
+            "remotelinuxcustomrunconfiguration.cpp",
+            "remotelinuxcustomrunconfiguration.h",
+            "remotelinuxcustomrunconfigurationwidget.ui",
+            "remotelinuxdebugsupport.cpp",
+            "remotelinuxdebugsupport.h",
+            "remotelinuxdeployconfiguration.cpp",
+            "remotelinuxdeployconfiguration.h",
+            "remotelinuxdeployconfigurationfactory.cpp",
+            "remotelinuxdeployconfigurationfactory.h",
+            "remotelinuxenvironmentaspect.cpp",
+            "remotelinuxenvironmentaspect.h",
+            "remotelinuxenvironmentaspectwidget.cpp",
+            "remotelinuxenvironmentaspectwidget.h",
+            "remotelinuxenvironmentreader.cpp",
+            "remotelinuxenvironmentreader.h",
+            "remotelinuxpackageinstaller.cpp",
+            "remotelinuxpackageinstaller.h",
+            "remotelinuxplugin.cpp",
+            "remotelinuxplugin.h",
+            "remotelinuxrunconfiguration.cpp",
+            "remotelinuxrunconfiguration.h",
+            "remotelinuxrunconfigurationfactory.cpp",
+            "remotelinuxrunconfigurationfactory.h",
+            "remotelinuxrunconfigurationwidget.cpp",
+            "remotelinuxrunconfigurationwidget.h",
+            "remotelinuxruncontrol.cpp",
+            "remotelinuxruncontrol.h",
+            "remotelinuxruncontrolfactory.cpp",
+            "remotelinuxruncontrolfactory.h",
+            "remotelinuxsignaloperation.cpp",
+            "remotelinuxsignaloperation.h",
+            "remotelinuxutils.cpp",
+            "remotelinuxutils.h",
+            "sshkeydeployer.cpp",
+            "sshkeydeployer.h",
+            "tarpackagecreationstep.cpp",
+            "tarpackagecreationstep.h",
+            "typespecificdeviceconfigurationlistmodel.cpp",
+            "typespecificdeviceconfigurationlistmodel.h",
+            "uploadandinstalltarpackagestep.cpp",
+            "uploadandinstalltarpackagestep.h",
+            "images/embeddedtarget.png"
+        ]
+
+        Export {
+            Depends { name: "Debugger" }
+            Depends { name: "Core" }
+            Depends { name: "QtcSsh" }
+        }
     }
 }
-
diff --git a/src/plugins/resourceeditor/resourceeditor.qbs b/src/plugins/resourceeditor/resourceeditor.qbs
index d96bafe3ac473d34d8c0bb017fc1273fcdb85987..cce387610620b662b32ece33d7076c912c4dfee8 100644
--- a/src/plugins/resourceeditor/resourceeditor.qbs
+++ b/src/plugins/resourceeditor/resourceeditor.qbs
@@ -1,37 +1,41 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "ResourceEditor"
 
-    Depends { name: "Qt"; submodules: ["widgets", "xml"] }
-    Depends { name: "Aggregation" }
-    Depends { name: "ProjectExplorer" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "xml"] }
+        Depends { name: "Aggregation" }
+        Depends { name: "ProjectExplorer" }
+        Depends { name: "Utils" }
 
-    cpp.defines: base.concat(["RESOURCE_LIBRARY"])
+        Depends { name: "Core" }
 
-    Group {
-        name: "General"
-        files: [
-            "resourceeditor.qrc",
-            "resourceeditorconstants.h",
-            "resourceeditorfactory.cpp", "resourceeditorfactory.h",
-            "resourceeditorplugin.cpp", "resourceeditorplugin.h",
-            "resourceeditorw.cpp", "resourceeditorw.h",
-            "resource_global.h", "resourcenode.cpp", "resourcenode.h"
-        ]
-    }
+        cpp.defines: base.concat(["RESOURCE_LIBRARY"])
+
+        Group {
+            name: "General"
+            files: [
+                "resourceeditor.qrc",
+                "resourceeditorconstants.h",
+                "resourceeditorfactory.cpp", "resourceeditorfactory.h",
+                "resourceeditorplugin.cpp", "resourceeditorplugin.h",
+                "resourceeditorw.cpp", "resourceeditorw.h",
+                "resource_global.h", "resourcenode.cpp", "resourcenode.h"
+            ]
+        }
 
-    Group {
-        name: "QRC Editor"
-        prefix: "qrceditor/"
-        files: [
-            "qrceditor.cpp", "qrceditor.h", "qrceditor.ui",
-            "resourcefile.cpp", "resourcefile_p.h",
-            "resourceview.cpp", "resourceview.h",
-            "undocommands.cpp", "undocommands_p.h",
-        ]
+        Group {
+            name: "QRC Editor"
+            prefix: "qrceditor/"
+            files: [
+                "qrceditor.cpp", "qrceditor.h", "qrceditor.ui",
+                "resourcefile.cpp", "resourcefile_p.h",
+                "resourceview.cpp", "resourceview.h",
+                "undocommands.cpp", "undocommands_p.h",
+            ]
+        }
     }
 }
diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs
index 2ca0759a595c7db5b6a9d4b5a7c487a01cc74596..573e5a1e9b4668d2b96650b7dcdddae2944e0a35 100644
--- a/src/plugins/texteditor/texteditor.qbs
+++ b/src/plugins/texteditor/texteditor.qbs
@@ -1,275 +1,279 @@
 import qbs 1.0
 
-QtcPlugin {
+Project {
     name: "TextEditor"
 
-    Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "printsupport"] }
-    Depends { name: "Aggregation" }
-    Depends { name: "Utils" }
+    QtcDevHeaders { }
 
-    Depends { name: "Core" }
+    QtcPlugin {
+        Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "printsupport"] }
+        Depends { name: "Aggregation" }
+        Depends { name: "Utils" }
 
-    cpp.includePaths: base.concat([path]) // Needed for the highlighterengine autotest.
-    cpp.enableExceptions: true
+        Depends { name: "Core" }
 
-    files: [
-        "autocompleter.cpp",
-        "autocompleter.h",
-        "basefilefind.cpp",
-        "basefilefind.h",
-        "basehoverhandler.cpp",
-        "basehoverhandler.h",
-        "behaviorsettings.cpp",
-        "behaviorsettings.h",
-        "behaviorsettingspage.cpp",
-        "behaviorsettingspage.h",
-        "behaviorsettingspage.ui",
-        "behaviorsettingswidget.cpp",
-        "behaviorsettingswidget.h",
-        "behaviorsettingswidget.ui",
-        "blockrange.h",
-        "circularclipboard.cpp",
-        "circularclipboard.h",
-        "circularclipboardassist.cpp",
-        "circularclipboardassist.h",
-        "codecselector.cpp",
-        "codecselector.h",
-        "codestyleeditor.cpp",
-        "codestyleeditor.h",
-        "codestylepool.cpp",
-        "codestylepool.h",
-        "codestyleselectorwidget.cpp",
-        "codestyleselectorwidget.h",
-        "codestyleselectorwidget.ui",
-        "colorpreviewhoverhandler.cpp",
-        "colorpreviewhoverhandler.h",
-        "colorscheme.cpp",
-        "colorscheme.h",
-        "colorschemeedit.cpp",
-        "colorschemeedit.h",
-        "colorschemeedit.ui",
-        "commentssettings.cpp",
-        "commentssettings.h",
-        "completionsettings.cpp",
-        "completionsettings.h",
-        "completionsettingspage.cpp",
-        "completionsettingspage.h",
-        "completionsettingspage.ui",
-        "convenience.cpp",
-        "convenience.h",
-        "displaysettings.cpp",
-        "displaysettings.h",
-        "displaysettingspage.cpp",
-        "displaysettingspage.h",
-        "displaysettingspage.ui",
-        "extraencodingsettings.cpp",
-        "extraencodingsettings.h",
-        "findincurrentfile.cpp",
-        "findincurrentfile.h",
-        "findinfiles.cpp",
-        "findinfiles.h",
-        "findinopenfiles.cpp",
-        "findinopenfiles.h",
-        "fontsettings.cpp",
-        "fontsettings.h",
-        "fontsettingspage.cpp",
-        "fontsettingspage.h",
-        "fontsettingspage.ui",
-        "helpitem.cpp",
-        "helpitem.h",
-        "highlighterutils.cpp",
-        "highlighterutils.h",
-        "icodestylepreferences.cpp",
-        "icodestylepreferences.h",
-        "icodestylepreferencesfactory.cpp",
-        "icodestylepreferencesfactory.h",
-        "indenter.cpp",
-        "indenter.h",
-        "ioutlinewidget.h",
-        "linenumberfilter.cpp",
-        "linenumberfilter.h",
-        "marginsettings.cpp",
-        "marginsettings.h",
-        "normalindenter.cpp",
-        "normalindenter.h",
-        "outlinefactory.cpp",
-        "outlinefactory.h",
-        "plaintexteditorfactory.cpp",
-        "plaintexteditorfactory.h",
-        "quickfix.cpp",
-        "quickfix.h",
-        "refactoringchanges.cpp",
-        "refactoringchanges.h",
-        "refactoroverlay.cpp",
-        "refactoroverlay.h",
-        "semantichighlighter.cpp",
-        "semantichighlighter.h",
-        "simplecodestylepreferences.cpp",
-        "simplecodestylepreferences.h",
-        "simplecodestylepreferenceswidget.cpp",
-        "simplecodestylepreferenceswidget.h",
-        "storagesettings.cpp",
-        "storagesettings.h",
-        "syntaxhighlighter.cpp",
-        "syntaxhighlighter.h",
-        "tabsettings.cpp",
-        "tabsettings.h",
-        "tabsettingswidget.cpp",
-        "tabsettingswidget.h",
-        "tabsettingswidget.ui",
-        "textdocument.cpp",
-        "textdocument.h",
-        "textdocumentlayout.cpp",
-        "textdocumentlayout.h",
-        "texteditor.cpp",
-        "texteditor.h",
-        "texteditor.qrc",
-        "texteditor_global.h",
-        "texteditor_p.h",
-        "texteditoractionhandler.cpp",
-        "texteditoractionhandler.h",
-        "texteditorconstants.cpp",
-        "texteditorconstants.h",
-        "texteditoroptionspage.cpp",
-        "texteditoroptionspage.h",
-        "texteditoroverlay.cpp",
-        "texteditoroverlay.h",
-        "texteditorplugin.cpp",
-        "texteditorplugin.h",
-        "texteditorsettings.cpp",
-        "texteditorsettings.h",
-        "textmark.cpp",
-        "textmark.h",
-        "textmarkregistry.h",
-        "textstyles.h",
-        "typingsettings.cpp",
-        "typingsettings.h",
-    ]
+        cpp.includePaths: base.concat([path]) // Needed for the highlighterengine autotest.
+        cpp.enableExceptions: true
 
-    Group {
-        name: "CodeAssist"
-        prefix: "codeassist/"
         files: [
-            "assistenums.h",
-            "assistinterface.cpp",
-            "assistinterface.h",
-            "assistproposalitem.cpp",
-            "assistproposalitem.h",
-            "assistproposaliteminterface.h",
-            "codeassistant.cpp",
-            "codeassistant.h",
-            "completionassistprovider.cpp",
-            "completionassistprovider.h",
-            "functionhintproposal.cpp",
-            "functionhintproposal.h",
-            "functionhintproposalwidget.cpp",
-            "functionhintproposalwidget.h",
-            "genericproposal.cpp",
-            "genericproposal.h",
-            "genericproposalmodel.cpp",
-            "genericproposalmodel.h",
-            "genericproposalwidget.cpp",
-            "genericproposalwidget.h",
-            "iassistprocessor.cpp",
-            "iassistprocessor.h",
-            "iassistproposal.cpp",
-            "iassistproposal.h",
-            "iassistproposalmodel.cpp",
-            "iassistproposalmodel.h",
-            "iassistproposalwidget.cpp",
-            "iassistproposalwidget.h",
-            "iassistprovider.cpp",
-            "iassistprovider.h",
-            "ifunctionhintproposalmodel.cpp",
-            "ifunctionhintproposalmodel.h",
-            "keywordscompletionassist.cpp",
-            "keywordscompletionassist.h",
-            "quickfixassistprocessor.cpp",
-            "quickfixassistprocessor.h",
-            "quickfixassistprovider.cpp",
-            "quickfixassistprovider.h",
-            "runner.cpp",
-            "runner.h",
-            "textdocumentmanipulator.cpp",
-            "textdocumentmanipulator.h",
-            "textdocumentmanipulatorinterface.h",
+            "autocompleter.cpp",
+            "autocompleter.h",
+            "basefilefind.cpp",
+            "basefilefind.h",
+            "basehoverhandler.cpp",
+            "basehoverhandler.h",
+            "behaviorsettings.cpp",
+            "behaviorsettings.h",
+            "behaviorsettingspage.cpp",
+            "behaviorsettingspage.h",
+            "behaviorsettingspage.ui",
+            "behaviorsettingswidget.cpp",
+            "behaviorsettingswidget.h",
+            "behaviorsettingswidget.ui",
+            "blockrange.h",
+            "circularclipboard.cpp",
+            "circularclipboard.h",
+            "circularclipboardassist.cpp",
+            "circularclipboardassist.h",
+            "codecselector.cpp",
+            "codecselector.h",
+            "codestyleeditor.cpp",
+            "codestyleeditor.h",
+            "codestylepool.cpp",
+            "codestylepool.h",
+            "codestyleselectorwidget.cpp",
+            "codestyleselectorwidget.h",
+            "codestyleselectorwidget.ui",
+            "colorpreviewhoverhandler.cpp",
+            "colorpreviewhoverhandler.h",
+            "colorscheme.cpp",
+            "colorscheme.h",
+            "colorschemeedit.cpp",
+            "colorschemeedit.h",
+            "colorschemeedit.ui",
+            "commentssettings.cpp",
+            "commentssettings.h",
+            "completionsettings.cpp",
+            "completionsettings.h",
+            "completionsettingspage.cpp",
+            "completionsettingspage.h",
+            "completionsettingspage.ui",
+            "convenience.cpp",
+            "convenience.h",
+            "displaysettings.cpp",
+            "displaysettings.h",
+            "displaysettingspage.cpp",
+            "displaysettingspage.h",
+            "displaysettingspage.ui",
+            "extraencodingsettings.cpp",
+            "extraencodingsettings.h",
+            "findincurrentfile.cpp",
+            "findincurrentfile.h",
+            "findinfiles.cpp",
+            "findinfiles.h",
+            "findinopenfiles.cpp",
+            "findinopenfiles.h",
+            "fontsettings.cpp",
+            "fontsettings.h",
+            "fontsettingspage.cpp",
+            "fontsettingspage.h",
+            "fontsettingspage.ui",
+            "helpitem.cpp",
+            "helpitem.h",
+            "highlighterutils.cpp",
+            "highlighterutils.h",
+            "icodestylepreferences.cpp",
+            "icodestylepreferences.h",
+            "icodestylepreferencesfactory.cpp",
+            "icodestylepreferencesfactory.h",
+            "indenter.cpp",
+            "indenter.h",
+            "ioutlinewidget.h",
+            "linenumberfilter.cpp",
+            "linenumberfilter.h",
+            "marginsettings.cpp",
+            "marginsettings.h",
+            "normalindenter.cpp",
+            "normalindenter.h",
+            "outlinefactory.cpp",
+            "outlinefactory.h",
+            "plaintexteditorfactory.cpp",
+            "plaintexteditorfactory.h",
+            "quickfix.cpp",
+            "quickfix.h",
+            "refactoringchanges.cpp",
+            "refactoringchanges.h",
+            "refactoroverlay.cpp",
+            "refactoroverlay.h",
+            "semantichighlighter.cpp",
+            "semantichighlighter.h",
+            "simplecodestylepreferences.cpp",
+            "simplecodestylepreferences.h",
+            "simplecodestylepreferenceswidget.cpp",
+            "simplecodestylepreferenceswidget.h",
+            "storagesettings.cpp",
+            "storagesettings.h",
+            "syntaxhighlighter.cpp",
+            "syntaxhighlighter.h",
+            "tabsettings.cpp",
+            "tabsettings.h",
+            "tabsettingswidget.cpp",
+            "tabsettingswidget.h",
+            "tabsettingswidget.ui",
+            "textdocument.cpp",
+            "textdocument.h",
+            "textdocumentlayout.cpp",
+            "textdocumentlayout.h",
+            "texteditor.cpp",
+            "texteditor.h",
+            "texteditor.qrc",
+            "texteditor_global.h",
+            "texteditor_p.h",
+            "texteditoractionhandler.cpp",
+            "texteditoractionhandler.h",
+            "texteditorconstants.cpp",
+            "texteditorconstants.h",
+            "texteditoroptionspage.cpp",
+            "texteditoroptionspage.h",
+            "texteditoroverlay.cpp",
+            "texteditoroverlay.h",
+            "texteditorplugin.cpp",
+            "texteditorplugin.h",
+            "texteditorsettings.cpp",
+            "texteditorsettings.h",
+            "textmark.cpp",
+            "textmark.h",
+            "textmarkregistry.h",
+            "textstyles.h",
+            "typingsettings.cpp",
+            "typingsettings.h",
         ]
-    }
 
-    Group {
-        name: "GenericHighlighter"
-        prefix: "generichighlighter/"
-        files: [
-            "context.cpp",
-            "context.h",
-            "definitiondownloader.cpp",
-            "definitiondownloader.h",
-            "dynamicrule.cpp",
-            "dynamicrule.h",
-            "highlightdefinition.cpp",
-            "highlightdefinition.h",
-            "highlightdefinitionhandler.cpp",
-            "highlightdefinitionhandler.h",
-            "highlightdefinitionmetadata.h",
-            "highlighter.cpp",
-            "highlighter.h",
-            "highlighterexception.h",
-            "highlightersettings.cpp",
-            "highlightersettings.h",
-            "highlightersettingspage.cpp",
-            "highlightersettingspage.h",
-            "highlightersettingspage.ui",
-            "includerulesinstruction.cpp",
-            "includerulesinstruction.h",
-            "itemdata.cpp",
-            "itemdata.h",
-            "keywordlist.cpp",
-            "keywordlist.h",
-            "managedefinitionsdialog.cpp",
-            "managedefinitionsdialog.h",
-            "managedefinitionsdialog.ui",
-            "manager.cpp",
-            "manager.h",
-            "progressdata.cpp",
-            "progressdata.h",
-            "reuse.h",
-            "rule.cpp",
-            "rule.h",
-            "specificrules.cpp",
-            "specificrules.h",
-        ]
-    }
+        Group {
+            name: "CodeAssist"
+            prefix: "codeassist/"
+            files: [
+                "assistenums.h",
+                "assistinterface.cpp",
+                "assistinterface.h",
+                "assistproposalitem.cpp",
+                "assistproposalitem.h",
+                "assistproposaliteminterface.h",
+                "codeassistant.cpp",
+                "codeassistant.h",
+                "completionassistprovider.cpp",
+                "completionassistprovider.h",
+                "functionhintproposal.cpp",
+                "functionhintproposal.h",
+                "functionhintproposalwidget.cpp",
+                "functionhintproposalwidget.h",
+                "genericproposal.cpp",
+                "genericproposal.h",
+                "genericproposalmodel.cpp",
+                "genericproposalmodel.h",
+                "genericproposalwidget.cpp",
+                "genericproposalwidget.h",
+                "iassistprocessor.cpp",
+                "iassistprocessor.h",
+                "iassistproposal.cpp",
+                "iassistproposal.h",
+                "iassistproposalmodel.cpp",
+                "iassistproposalmodel.h",
+                "iassistproposalwidget.cpp",
+                "iassistproposalwidget.h",
+                "iassistprovider.cpp",
+                "iassistprovider.h",
+                "ifunctionhintproposalmodel.cpp",
+                "ifunctionhintproposalmodel.h",
+                "keywordscompletionassist.cpp",
+                "keywordscompletionassist.h",
+                "quickfixassistprocessor.cpp",
+                "quickfixassistprocessor.h",
+                "quickfixassistprovider.cpp",
+                "quickfixassistprovider.h",
+                "runner.cpp",
+                "runner.h",
+                "textdocumentmanipulator.cpp",
+                "textdocumentmanipulator.h",
+                "textdocumentmanipulatorinterface.h",
+            ]
+        }
 
-    Group {
-        name: "Snippets"
-        prefix: "snippets/"
-        files: [
-            "isnippetprovider.cpp",
-            "isnippetprovider.h",
-            "plaintextsnippetprovider.cpp",
-            "plaintextsnippetprovider.h",
-            "reuse.h",
-            "snippet.cpp",
-            "snippet.h",
-            "snippetassistcollector.cpp",
-            "snippetassistcollector.h",
-            "snippeteditor.cpp",
-            "snippeteditor.h",
-            "snippetscollection.cpp",
-            "snippetscollection.h",
-            "snippetssettings.cpp",
-            "snippetssettings.h",
-            "snippetssettingspage.cpp",
-            "snippetssettingspage.h",
-            "snippetssettingspage.ui",
-        ]
-    }
+        Group {
+            name: "GenericHighlighter"
+            prefix: "generichighlighter/"
+            files: [
+                "context.cpp",
+                "context.h",
+                "definitiondownloader.cpp",
+                "definitiondownloader.h",
+                "dynamicrule.cpp",
+                "dynamicrule.h",
+                "highlightdefinition.cpp",
+                "highlightdefinition.h",
+                "highlightdefinitionhandler.cpp",
+                "highlightdefinitionhandler.h",
+                "highlightdefinitionmetadata.h",
+                "highlighter.cpp",
+                "highlighter.h",
+                "highlighterexception.h",
+                "highlightersettings.cpp",
+                "highlightersettings.h",
+                "highlightersettingspage.cpp",
+                "highlightersettingspage.h",
+                "highlightersettingspage.ui",
+                "includerulesinstruction.cpp",
+                "includerulesinstruction.h",
+                "itemdata.cpp",
+                "itemdata.h",
+                "keywordlist.cpp",
+                "keywordlist.h",
+                "managedefinitionsdialog.cpp",
+                "managedefinitionsdialog.h",
+                "managedefinitionsdialog.ui",
+                "manager.cpp",
+                "manager.h",
+                "progressdata.cpp",
+                "progressdata.h",
+                "reuse.h",
+                "rule.cpp",
+                "rule.h",
+                "specificrules.cpp",
+                "specificrules.h",
+            ]
+        }
 
-    Group {
-        name: "Tests"
-        condition: qtc.testsEnabled
-        files: [
-            "texteditor_test.cpp",
-        ]
+        Group {
+            name: "Snippets"
+            prefix: "snippets/"
+            files: [
+                "isnippetprovider.cpp",
+                "isnippetprovider.h",
+                "plaintextsnippetprovider.cpp",
+                "plaintextsnippetprovider.h",
+                "reuse.h",
+                "snippet.cpp",
+                "snippet.h",
+                "snippetassistcollector.cpp",
+                "snippetassistcollector.h",
+                "snippeteditor.cpp",
+                "snippeteditor.h",
+                "snippetscollection.cpp",
+                "snippetscollection.h",
+                "snippetssettings.cpp",
+                "snippetssettings.h",
+                "snippetssettingspage.cpp",
+                "snippetssettingspage.h",
+                "snippetssettingspage.ui",
+            ]
+        }
+
+        Group {
+            name: "Tests"
+            condition: qtc.testsEnabled
+            files: [
+                "texteditor_test.cpp",
+            ]
+        }
     }
 }