forked from qt-creator/qt-creator
Add qbs support to library wizard
Change-Id: Id78bc547cf42dec8948d7ebca56eacfcbbd2f055 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -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
|
||||||
|
}
|
@@ -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,
|
||||||
|
Reference in New Issue
Block a user