diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-02-12 14:02:07 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-02-13 13:45:37 +0100 |
commit | 77dc72d3e5fb0142e876dbfd13d44bf44e49d01d (patch) | |
tree | 659e5eb7312773058755eb807b7c08063cbed180 /src/plugins/qt4projectmanager/wizards/libraryparameters.cpp | |
parent | 83d6e81d94e7c2b00ddde6dfd4a03246c03f4de3 (diff) | |
download | qt-creator-77dc72d3e5fb0142e876dbfd13d44bf44e49d01d.tar.gz |
Library-Wizard: Write plugins compatible with Qt 4 / 5.
Add json-file and #ifdef plugin export for use with Qt 4 and 5.
Change-Id: Ib04f2e56be08634f00c8aa2cde45837b9a138cbe
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src/plugins/qt4projectmanager/wizards/libraryparameters.cpp')
-rw-r--r-- | src/plugins/qt4projectmanager/wizards/libraryparameters.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/plugins/qt4projectmanager/wizards/libraryparameters.cpp b/src/plugins/qt4projectmanager/wizards/libraryparameters.cpp index 4c1926203c..28ef629b4b 100644 --- a/src/plugins/qt4projectmanager/wizards/libraryparameters.cpp +++ b/src/plugins/qt4projectmanager/wizards/libraryparameters.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "libraryparameters.h" +#include "librarywizarddialog.h" #include <utils/codegeneration.h> @@ -61,6 +62,7 @@ void LibraryParameters::generateCode(QtProjectParameters:: Type t, const QString &headerName, const QString &sharedHeader, const QString &exportMacro, + const QString &pluginJsonFileName, int indentation, QString *header, QString *source) const @@ -107,7 +109,19 @@ void LibraryParameters::generateCode(QtProjectParameters:: Type t, const bool inheritsQObject = t == QtProjectParameters::Qt4Plugin; if (inheritsQObject) headerStr << namespaceIndent << indent << "Q_OBJECT\n"; - headerStr << namespaceIndent << "public:\n"; + if (t == QtProjectParameters::Qt4Plugin) { // Write Qt 5 plugin meta data. + const QString qt5InterfaceName = LibraryWizardDialog::pluginInterface(baseClassName); + if (!qt5InterfaceName.isEmpty()) { + headerStr << "#if QT_VERSION >= 0x050000\n" + << namespaceIndent << indent << "Q_PLUGIN_METADATA(IID \"" + << qt5InterfaceName << '"'; + if (!pluginJsonFileName.isEmpty()) + headerStr << " FILE \"" << pluginJsonFileName << '"'; + headerStr << ")\n#endif // QT_VERSION >= 0x050000\n"; + } + } + + headerStr << namespaceIndent << "\npublic:\n"; if (inheritsQObject) headerStr << namespaceIndent << indent << unqualifiedClassName << "(QObject *parent = 0);\n"; else @@ -134,8 +148,11 @@ void LibraryParameters::generateCode(QtProjectParameters:: Type t, Utils::writeClosingNameSpaces(namespaceList, indent, sourceStr); - if (t == QtProjectParameters::Qt4Plugin) - sourceStr << '\n' << "Q_EXPORT_PLUGIN2(" << projectTarget << ", " << className << ")\n"; + if (t == QtProjectParameters::Qt4Plugin) { // Qt 4 plugin export + sourceStr << "\n#if QT_VERSION < 0x050000\n" + << "Q_EXPORT_PLUGIN2(" << projectTarget << ", " << className << ")\n" + << "#endif // QT_VERSION < 0x050000\n"; + } } QString LibraryParameters::generateSharedHeader(const QString &globalHeaderFileName, |