diff --git a/share/qtcreator/templates/wizards/plaincppapp/cmake/wizard.xml b/share/qtcreator/templates/wizards/plaincppapp/cmake/wizard.xml
deleted file mode 100644
index 4bd5e93384f..00000000000
--- a/share/qtcreator/templates/wizards/plaincppapp/cmake/wizard.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- ../common/console.png
- Creates a plain C++ project using CMake, not using the Qt library.
- Plain C++ Project (CMake Build);
- Non-Qt Project
-
-
-
-
-
diff --git a/share/qtcreator/templates/wizards/plaincppapp/common/console.png b/share/qtcreator/templates/wizards/plaincppapp/common/console.png
deleted file mode 100644
index 7569a988f4a..00000000000
Binary files a/share/qtcreator/templates/wizards/plaincppapp/common/console.png and /dev/null differ
diff --git a/share/qtcreator/templates/wizards/plaincppapp/qbs/wizard.xml b/share/qtcreator/templates/wizards/plaincppapp/qbs/wizard.xml
deleted file mode 100644
index 67a4e4f66b7..00000000000
--- a/share/qtcreator/templates/wizards/plaincppapp/qbs/wizard.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
- ../common/console.png
- Creates a plain (non-Qt) C++ project using Qbs.
- Plain C++ Project (Qbs Build);
- Non-Qt Project
-
-
-
-
-
diff --git a/share/qtcreator/templates/wizards/plaincppapp/qmake/wizard.xml b/share/qtcreator/templates/wizards/plaincppapp/qmake/wizard.xml
deleted file mode 100644
index 466a5a79bc5..00000000000
--- a/share/qtcreator/templates/wizards/plaincppapp/qmake/wizard.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- ../common/console.png
- Creates a plain C++ project using qmake, not using the Qt library.
- Plain C++ Project;
- Non-Qt Project
-
-
-
-
-
diff --git a/share/qtcreator/templates/wizards/plaincppapp/cmake/CMakeLists.txt b/share/qtcreator/templates/wizards/projects/plaincpp/CMakeLists.txt
similarity index 82%
rename from share/qtcreator/templates/wizards/plaincppapp/cmake/CMakeLists.txt
rename to share/qtcreator/templates/wizards/projects/plaincpp/CMakeLists.txt
index aad92e30c3c..9001db70166 100644
--- a/share/qtcreator/templates/wizards/plaincppapp/cmake/CMakeLists.txt
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/CMakeLists.txt
@@ -1,4 +1,4 @@
-project(%ProjectName%)
+project(%{ProjectName})
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
diff --git a/share/qtcreator/templates/wizards/plaincppapp/qmake/project.pro b/share/qtcreator/templates/wizards/projects/plaincpp/file.pro
similarity index 68%
rename from share/qtcreator/templates/wizards/plaincppapp/qmake/project.pro
rename to share/qtcreator/templates/wizards/projects/plaincpp/file.pro
index 3f05c8e3bbf..2aa18858cea 100644
--- a/share/qtcreator/templates/wizards/plaincppapp/qmake/project.pro
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/file.pro
@@ -3,4 +3,4 @@ CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
-SOURCES += main.%CppSourceSuffix%
+SOURCES += %{CppFileName}
diff --git a/share/qtcreator/templates/wizards/plaincppapp/qbs/project.qbs b/share/qtcreator/templates/wizards/projects/plaincpp/file.qbs
similarity index 87%
rename from share/qtcreator/templates/wizards/plaincppapp/qbs/project.qbs
rename to share/qtcreator/templates/wizards/projects/plaincpp/file.qbs
index e828e26a6d9..257f61dc498 100644
--- a/share/qtcreator/templates/wizards/plaincppapp/qbs/project.qbs
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/file.qbs
@@ -3,7 +3,7 @@ import qbs
CppApplication {
type: "application" // To suppress bundle generation on Mac
consoleApplication: true
- files: "main.%CppSourceSuffix%"
+ files: "%{CppFileName}"
Group { // Properties for the produced executable
fileTagsFilter: product.type
diff --git a/share/qtcreator/templates/wizards/plaincppapp/common/main.cpp b/share/qtcreator/templates/wizards/projects/plaincpp/main.cpp
similarity index 81%
rename from share/qtcreator/templates/wizards/plaincppapp/common/main.cpp
rename to share/qtcreator/templates/wizards/projects/plaincpp/main.cpp
index 3129fb9dd95..0f458918994 100644
--- a/share/qtcreator/templates/wizards/plaincppapp/common/main.cpp
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/main.cpp
@@ -1,3 +1,4 @@
+%{Cpp:LicenseTemplate}\
#include
using namespace std;
diff --git a/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json b/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json
new file mode 100644
index 00000000000..5ec2b6ed317
--- /dev/null
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json
@@ -0,0 +1,114 @@
+{
+ "version": 1,
+ "kind": "project",
+ "id": "R.Plain Cpp Application",
+ "category": "I.Projects",
+ "trDescription": "Creates a simple C++ application using either qmake, CMake, or Qbs to build.",
+ "trDisplayName": "Plain C++ Application",
+ "trDisplayCategory": "Non-Qt Project",
+ "icon": "../../global/consoleapplication.png",
+ "enabled": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0 || [ %{Plugins} ].indexOf('QbsProjectManager') >= 0 || [ %{Plugins} ].indexOf('CMakeProjectManager') >= 0}",
+
+ "options":
+ [
+ { "key": "ProjectFile", "value": "%{JS: '%{BuildSystem}' === 'qmake' ? '%{ProFile}' : ('%{BuildSystem}' === 'cmake' ? '%{CMakeFile}' : '%{QbsFile}')}" },
+ { "key": "ProFile", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'pro')}" },
+ { "key": "QbsFile", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'qbs')}" },
+ { "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
+ { "key": "CppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" },
+ { "key": "IsTopLevelProject", "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}'}" }
+ ],
+
+ "pages":
+ [
+ {
+ "trDisplayName": "Project Location",
+ "trShortTitle": "Location",
+ "typeId": "Project"
+ },
+ {
+ "trDisplayName": "Define Build System",
+ "trShortTitle": "Build System",
+ "typeId": "Fields",
+ "data":
+ [
+ {
+ "name": "BuildSystem",
+ "trDisplayName": "Build system:",
+ "type": "ComboBox",
+ "data":
+ {
+ "index": 0,
+ "items":
+ [
+ {
+ "trKey": "qmake",
+ "value": "qmake",
+ "condition": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0}"
+ },
+ {
+ "trKey": "CMake",
+ "value": "cmake",
+ "condition": "%{JS: [ %{Plugins} ].indexOf('CMakeProjectManager') >= 0}"
+ },
+ {
+ "trKey": "Qbs",
+ "value": "qbs",
+ "condition": "%{JS: [ %{Plugins} ].indexOf('QbsProjectManager') >= 0}"
+ }
+ ]
+ }
+ }
+ ]
+ },
+
+ {
+ "trDisplayName": "Kit Selection",
+ "trShortTitle": "Kits",
+ "typeId": "Kits",
+ "enabled": "%{IsTopLevelProject}",
+ "data": { "projectFilePath": "%{ProjectFile}" }
+ },
+ {
+ "trDisplayName": "Project Management",
+ "trShortTitle": "Summary",
+ "typeId": "Summary"
+ }
+ ],
+ "generators":
+ [
+ {
+ "typeId": "File",
+ "data":
+ [
+ {
+ "source": "file.pro",
+ "target": "%{ProFile}",
+ "openAsProject": true,
+ "condition": "%{JS: '%{BuildSystem}' === 'qmake'}"
+ },
+ {
+ "source": "CMakeLists.txt",
+ "openAsProject": true,
+ "condition": "%{JS: '%{BuildSystem}' === 'cmake'}"
+ },
+ {
+ "source": "file.qbs",
+ "target": "%{QbsFile}",
+ "openAsProject": true,
+ "condition": "%{JS: '%{BuildSystem}' === 'qbs'}"
+ },
+ {
+ "source": "main.cpp",
+ "target": "%{CppFileName}",
+ "openInEditor": true
+ },
+ {
+ "source": "../git.ignore",
+ "target": "%{ProjectDirectory}/.gitignore",
+ "condition": "%{JS: ! %{IsSubproject} && '%{VersionControl}' === 'G.Git'}"
+ }
+ ]
+ }
+ ]
+}