Add qbs support to library wizard

Change-Id: Id78bc547cf42dec8948d7ebca56eacfcbbd2f055
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Kandeler
2019-07-18 12:55:43 +02:00
parent bfb971920a
commit c8e656c506
2 changed files with 73 additions and 3 deletions

View File

@@ -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
}

View File

@@ -1,6 +1,6 @@
{ {
"version": 1, "version": 1,
"supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qt4ProjectManager.Qt4Project" ], "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
"id": "H.CppLibrary", "id": "H.CppLibrary",
"category": "G.Library", "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>", "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": "options":
[ [
{ "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'qmake' ? value('ProFile') : value('CMakeFile')}" }, { "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'cmake' ? value('CMakeFile') : value('ProFile')}" },
{ "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" }, { "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), value('BuildSystem') === 'qmake' ? 'pro' : 'qbs')}" },
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" }, { "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "PluginJsonFile", "value": "%{JS: Util.fileName(value('ProjectName'), 'json')}" }, { "key": "PluginJsonFile", "value": "%{JS: Util.fileName(value('ProjectName'), 'json')}" },
{ "key": "IsShared", "value": "%{JS: value('Type') === 'shared'}" }, { "key": "IsShared", "value": "%{JS: value('Type') === 'shared'}" },
@@ -67,6 +67,11 @@
"trKey": "CMake", "trKey": "CMake",
"value": "cmake", "value": "cmake",
"condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}" "condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}"
},
{
"trKey": "Qbs",
"value": "qbs",
"condition": "%{JS: value('Plugins').indexOf('QbsProjectManager') >= 0}"
} }
] ]
} }
@@ -291,6 +296,12 @@
"openAsProject": true, "openAsProject": true,
"condition": "%{JS: value('BuildSystem') === 'qmake'}" "condition": "%{JS: value('BuildSystem') === 'qmake'}"
}, },
{
"source": "project.qbs",
"target": "%{ProFile}",
"openAsProject": true,
"condition": "%{JS: value('BuildSystem') === 'qbs'}"
},
{ {
"source": "CMakeLists.txt", "source": "CMakeLists.txt",
"openAsProject": true, "openAsProject": true,