aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/templates
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-07-18 12:55:43 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-07-18 12:36:43 +0000
commitc8e656c506e22d62968ae2a5adf09c96f49efe12 (patch)
tree04a6b632d6fc717a2939a2e44370cb99f6daba07 /share/qtcreator/templates
parentbfb971920a66730f7f3d4f859be35e6852570150 (diff)
Add qbs support to library wizard
Change-Id: Id78bc547cf42dec8948d7ebca56eacfcbbd2f055 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'share/qtcreator/templates')
-rw-r--r--share/qtcreator/templates/wizards/projects/cpplibrary/project.qbs59
-rw-r--r--share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json17
2 files changed, 73 insertions, 3 deletions
diff --git a/share/qtcreator/templates/wizards/projects/cpplibrary/project.qbs b/share/qtcreator/templates/wizards/projects/cpplibrary/project.qbs
new file mode 100644
index 0000000000..0e5df73e84
--- /dev/null
+++ b/share/qtcreator/templates/wizards/projects/cpplibrary/project.qbs
@@ -0,0 +1,59 @@
+import qbs.FileInfo
+
+@if %{IsStatic}
+StaticLibrary {
+@else
+DynamicLibrary {
+@endif
+@if '%{QtModule}' === 'none'
+ Depends { name: "cpp" }
+@else
+ Depends { name: "Qt.%{QtModule}" }
+@endif
+
+ cpp.cxxLanguageVersion: "c++11"
+ cpp.defines: [
+@if %{IsShared}
+ "%{LibraryDefine}",
+@endif
+@if %{IsQtPlugin}
+ "QT_PLUGIN",
+@endif
+
+ // The following define makes your compiler emit warnings if you use
+ // any Qt feature that has been marked deprecated (the exact warnings
+ // depend on your compiler). Please consult the documentation of the
+ // deprecated API in order to know how to port your code away from it.
+ "QT_DEPRECATED_WARNINGS",
+
+ // You can also make your code fail to compile if it uses deprecated APIs.
+ // In order to do so, uncomment the following line.
+ // You can also select to disable deprecated APIs only up to a certain version of Qt.
+ // "QT_DISABLE_DEPRECATED_BEFORE=0x060000", // disables all the APIs deprecated before Qt 6.0.0
+ ]
+
+ files: [
+ "%{SrcFileName}",
+@if %{IsShared}
+ "%{GlobalHdrFileName}",
+@endif
+ "%{HdrFileName}",
+@if %{IsQtPlugin}
+ "%{PluginJsonFile}",
+@endif
+ ]
+
+@if '%{TargetInstallPath}' != ''
+ // Default rules for deployment.
+ qbs.installPrefix: ""
+ Properties {
+ condition: qbs.targetOS.contains("unix")
+ install: true
+@if %{IsQtPlugin}
+ installDir: FileInfo.joinPaths(Qt.core.pluginPath, "%{PluginTargetPath}")
+@else
+ installDir: "%{TargetInstallPath}"
+@endif
+ }
+@endif
+}
diff --git a/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json b/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
index e61048a4b6..8f4c264499 100644
--- a/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
@@ -1,6 +1,6 @@
{
"version": 1,
- "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qt4ProjectManager.Qt4Project" ],
+ "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
"id": "H.CppLibrary",
"category": "G.Library",
"trDescription": "Creates a C++ library. This can be used to create:<ul><li>a shared C++ library for use with <tt>QPluginLoader</tt> and runtime (Plugins)</li><li>a shared or static C++ library for use with another project at linktime</li></ul>",
@@ -11,8 +11,8 @@
"options":
[
- { "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'qmake' ? value('ProFile') : value('CMakeFile')}" },
- { "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" },
+ { "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'cmake' ? value('CMakeFile') : value('ProFile')}" },
+ { "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), value('BuildSystem') === 'qmake' ? 'pro' : 'qbs')}" },
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "PluginJsonFile", "value": "%{JS: Util.fileName(value('ProjectName'), 'json')}" },
{ "key": "IsShared", "value": "%{JS: value('Type') === 'shared'}" },
@@ -67,6 +67,11 @@
"trKey": "CMake",
"value": "cmake",
"condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}"
+ },
+ {
+ "trKey": "Qbs",
+ "value": "qbs",
+ "condition": "%{JS: value('Plugins').indexOf('QbsProjectManager') >= 0}"
}
]
}
@@ -292,6 +297,12 @@
"condition": "%{JS: value('BuildSystem') === 'qmake'}"
},
{
+ "source": "project.qbs",
+ "target": "%{ProFile}",
+ "openAsProject": true,
+ "condition": "%{JS: value('BuildSystem') === 'qbs'}"
+ },
+ {
"source": "CMakeLists.txt",
"openAsProject": true,
"condition": "%{JS: value('BuildSystem') === 'cmake'}"