summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/wizards/libraryparameters.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-02-12 14:02:07 +0100
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2013-02-13 13:45:37 +0100
commit77dc72d3e5fb0142e876dbfd13d44bf44e49d01d (patch)
tree659e5eb7312773058755eb807b7c08063cbed180 /src/plugins/qt4projectmanager/wizards/libraryparameters.cpp
parent83d6e81d94e7c2b00ddde6dfd4a03246c03f4de3 (diff)
downloadqt-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.cpp23
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,