From 4e83fb7953fb670abd4de1b685ef0142da241cba Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Tue, 21 Feb 2012 16:52:28 +0100 Subject: [PATCH] Port Qt Creator to the new plugin system of Qt 5. - Add Q_PLUGIN_METADATA for Qt 5, use Q_EXPORT_PLUGIN for Qt 4. - Generate the Json files for Qt 5 from the pluginspec files by using a XSLT sheet. Change-Id: I8653f182ae7d61615971c093df10b84fb06c2172 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> --- src/libs/extensionsystem/iplugin.h | 15 +++++++++++ .../qtcomponents/styleitem/qstyleplugin.cpp | 2 ++ .../qtcomponents/styleitem/qstyleplugin.h | 5 ++++ .../qtcomponents/styleitem/styleitem.json | 1 + src/pluginjsonmetadata.xsl | 27 +++++++++++++++++++ src/plugins/analyzerbase/analyzerplugin.h | 1 + .../autotoolsprojectplugin.h | 3 +++ src/plugins/bazaar/bazaarplugin.h | 1 + src/plugins/bineditor/bineditorplugin.h | 1 + src/plugins/bookmarks/bookmarksplugin.h | 1 + src/plugins/classview/classviewplugin.h | 1 + .../cmakeprojectmanager/cmakeprojectplugin.h | 1 + src/plugins/coreplugin/coreplugin.h | 1 + src/plugins/cpaster/cpasterplugin.h | 1 + src/plugins/cppeditor/cppplugin.h | 1 + src/plugins/cpptools/cpptoolsplugin.h | 1 + src/plugins/cvs/cvsplugin.h | 1 + src/plugins/debugger/debuggerplugin.h | 1 + src/plugins/designer/formeditorplugin.h | 1 + src/plugins/fakevim/fakevimplugin.h | 1 + src/plugins/find/findplugin.h | 1 + .../genericprojectplugin.h | 1 + src/plugins/git/gitplugin.h | 1 + src/plugins/glsleditor/glsleditorplugin.h | 1 + src/plugins/helloworld/helloworldplugin.h | 1 + src/plugins/help/helpplugin.h | 1 + src/plugins/imageviewer/imageviewerplugin.h | 1 + src/plugins/locator/locatorplugin.h | 5 ++++ src/plugins/macros/macrosplugin.h | 1 + src/plugins/madde/maddeplugin.h | 2 ++ src/plugins/mercurial/mercurialplugin.h | 1 + src/plugins/perforce/perforceplugin.h | 1 + src/plugins/projectexplorer/projectexplorer.h | 1 + src/plugins/qmldesigner/qmldesignerplugin.h | 1 + src/plugins/qmljseditor/qmljseditorplugin.h | 1 + .../qmljsinspector/qmljsinspectorplugin.h | 1 + src/plugins/qmljstools/qmljstoolsplugin.h | 1 + src/plugins/qmlprofiler/qmlprofilerplugin.h | 1 + .../qmlprojectmanager/qmlprojectplugin.h | 1 + .../qt4projectmanagerplugin.h | 1 + src/plugins/qtsupport/qtsupportplugin.h | 1 + src/plugins/remotelinux/remotelinuxplugin.h | 1 + .../resourceeditor/resourceeditorplugin.h | 1 + src/plugins/subversion/subversionplugin.h | 1 + src/plugins/tasklist/tasklistplugin.h | 1 + src/plugins/texteditor/texteditorplugin.h | 1 + src/plugins/todo/todoplugin.h | 2 ++ src/plugins/updateinfo/updateinfoplugin.h | 2 ++ src/plugins/valgrind/valgrindplugin.h | 1 + src/plugins/vcsbase/vcsplugin.h | 1 + src/plugins/welcome/welcomeplugin.h | 2 ++ src/qtcreatorplugin.pri | 16 +++++++++++ 52 files changed, 122 insertions(+) create mode 100644 src/libs/qtcomponents/styleitem/styleitem.json create mode 100644 src/pluginjsonmetadata.xsl diff --git a/src/libs/extensionsystem/iplugin.h b/src/libs/extensionsystem/iplugin.h index 37f474a09ce..598eef9aab4 100644 --- a/src/libs/extensionsystem/iplugin.h +++ b/src/libs/extensionsystem/iplugin.h @@ -36,6 +36,9 @@ #include "extensionsystem_global.h" #include <QObject> +#if QT_VERSION >= 0x050000 +# include <QtPlugin> +#endif namespace ExtensionSystem { @@ -83,4 +86,16 @@ private: } // namespace ExtensionSystem +// The macros Q_EXPORT_PLUGIN, Q_EXPORT_PLUGIN2 become obsolete in Qt 5. +#if QT_VERSION >= 0x050000 +# if defined(Q_EXPORT_PLUGIN) +# undef Q_EXPORT_PLUGIN +# undef Q_EXPORT_PLUGIN2 +# endif +# define Q_EXPORT_PLUGIN(plugin) +# define Q_EXPORT_PLUGIN2(function, plugin) +#else +# define Q_PLUGIN_METADATA(x) +#endif + #endif // IPLUGIN_H diff --git a/src/libs/qtcomponents/styleitem/qstyleplugin.cpp b/src/libs/qtcomponents/styleitem/qstyleplugin.cpp index d615bd4a2f4..4eb4427ff3b 100644 --- a/src/libs/qtcomponents/styleitem/qstyleplugin.cpp +++ b/src/libs/qtcomponents/styleitem/qstyleplugin.cpp @@ -95,4 +95,6 @@ void StylePlugin::initializeEngine(QDeclarativeEngine *engine, const char *uri) engine->addImageProvider("desktoptheme", new DesktopIconProvider); } +#if QT_VERSION < 0x050000 Q_EXPORT_PLUGIN2(styleplugin, StylePlugin) +#endif diff --git a/src/libs/qtcomponents/styleitem/qstyleplugin.h b/src/libs/qtcomponents/styleitem/qstyleplugin.h index 74cf097a2e7..c10d5a5e023 100644 --- a/src/libs/qtcomponents/styleitem/qstyleplugin.h +++ b/src/libs/qtcomponents/styleitem/qstyleplugin.h @@ -50,6 +50,11 @@ class StylePlugin : public QDeclarativeExtensionPlugin { Q_OBJECT +#if QT_VERSION >= 0x050000 + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDeclarativeExtensionInterface" FILE "styleitem.json") + Q_INTERFACES(QDeclarativeExtensionInterface) +#endif + public: void registerTypes(const char *uri); void initializeEngine(QDeclarativeEngine *engine, const char *uri); diff --git a/src/libs/qtcomponents/styleitem/styleitem.json b/src/libs/qtcomponents/styleitem/styleitem.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/src/libs/qtcomponents/styleitem/styleitem.json @@ -0,0 +1 @@ +{} diff --git a/src/pluginjsonmetadata.xsl b/src/pluginjsonmetadata.xsl new file mode 100644 index 00000000000..dff00332b72 --- /dev/null +++ b/src/pluginjsonmetadata.xsl @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<!-- XSL sheet to transform Qt Creator's pluginspec files into json files required + for the new Qt 5 plugin system. --> +<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:strip-space elements="plugin vendor category description url"/> +<xsl:template match="/"> +{ + <xsl:apply-templates/> +} +</xsl:template> +<xsl:template match="license"/> +<xsl:template match="dependencyList"/> +<xsl:template match="copyright"/> +<xsl:template match="argumentList"/> +<xsl:template match="vendor"> +"Vendor" : "<xsl:apply-templates/>", +</xsl:template> +<xsl:template match="category"> +"Category" : "<xsl:apply-templates/>", +</xsl:template> +<xsl:template match="description"> +"Description" : "<xsl:apply-templates/>", +</xsl:template> +<xsl:template match="url"> +"Url" : "<xsl:apply-templates/>" +</xsl:template> +</xsl:stylesheet> diff --git a/src/plugins/analyzerbase/analyzerplugin.h b/src/plugins/analyzerbase/analyzerplugin.h index 7db7c8c2064..da5d80588ce 100644 --- a/src/plugins/analyzerbase/analyzerplugin.h +++ b/src/plugins/analyzerbase/analyzerplugin.h @@ -43,6 +43,7 @@ namespace Internal { class AnalyzerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "AnalyzerBase.json") public: static AnalyzerPlugin *instance(); diff --git a/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.h b/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.h index e7210d0ac32..2e46de17467 100644 --- a/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.h +++ b/src/plugins/autotoolsprojectmanager/autotoolsprojectplugin.h @@ -70,6 +70,9 @@ namespace Internal { class AutotoolsProjectPlugin : public ExtensionSystem::IPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "AutotoolsProjectManager.json") + public: AutotoolsProjectPlugin(); diff --git a/src/plugins/bazaar/bazaarplugin.h b/src/plugins/bazaar/bazaarplugin.h index dff76119778..f64372c814d 100644 --- a/src/plugins/bazaar/bazaarplugin.h +++ b/src/plugins/bazaar/bazaarplugin.h @@ -81,6 +81,7 @@ class BazaarEditor; class BazaarPlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Bazaar.json") public: BazaarPlugin(); diff --git a/src/plugins/bineditor/bineditorplugin.h b/src/plugins/bineditor/bineditorplugin.h index 2db7c380010..b4fd4050892 100644 --- a/src/plugins/bineditor/bineditorplugin.h +++ b/src/plugins/bineditor/bineditorplugin.h @@ -60,6 +60,7 @@ class BinEditorFactory; class BinEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "BinEditor.json") public: BinEditorPlugin(); diff --git a/src/plugins/bookmarks/bookmarksplugin.h b/src/plugins/bookmarks/bookmarksplugin.h index 2607ebcb213..7f03ce93b8a 100644 --- a/src/plugins/bookmarks/bookmarksplugin.h +++ b/src/plugins/bookmarks/bookmarksplugin.h @@ -59,6 +59,7 @@ class BookmarkManager; class BookmarksPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Bookmarks.json") public: BookmarksPlugin(); diff --git a/src/plugins/classview/classviewplugin.h b/src/plugins/classview/classviewplugin.h index 912856b064f..3a0f8d455a4 100644 --- a/src/plugins/classview/classviewplugin.h +++ b/src/plugins/classview/classviewplugin.h @@ -46,6 +46,7 @@ namespace Internal { class Plugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ClassView.json") public: //! Constructor diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h index 913f1b2ced6..f876807d595 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.h @@ -44,6 +44,7 @@ class CMakeProjectPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CMakeProjectManager.json") public: CMakeProjectPlugin(); diff --git a/src/plugins/coreplugin/coreplugin.h b/src/plugins/coreplugin/coreplugin.h index 947abf800f6..e8a444b3e5e 100644 --- a/src/plugins/coreplugin/coreplugin.h +++ b/src/plugins/coreplugin/coreplugin.h @@ -45,6 +45,7 @@ class MainWindow; class CorePlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Core.json") public: CorePlugin(); diff --git a/src/plugins/cpaster/cpasterplugin.h b/src/plugins/cpaster/cpasterplugin.h index 4b50faa91ce..f7c93526b53 100644 --- a/src/plugins/cpaster/cpasterplugin.h +++ b/src/plugins/cpaster/cpasterplugin.h @@ -63,6 +63,7 @@ public slots: class CodepasterPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CodePaster.json") public: CodepasterPlugin(); diff --git a/src/plugins/cppeditor/cppplugin.h b/src/plugins/cppeditor/cppplugin.h index acc251e5cb8..3b42b0b28b2 100644 --- a/src/plugins/cppeditor/cppplugin.h +++ b/src/plugins/cppeditor/cppplugin.h @@ -55,6 +55,7 @@ class CppQuickFixAssistProvider; class CppPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CppEditor.json") public: CppPlugin(); diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h index 51319ffc965..b4b167b9a1a 100644 --- a/src/plugins/cpptools/cpptoolsplugin.h +++ b/src/plugins/cpptools/cpptoolsplugin.h @@ -63,6 +63,7 @@ struct CppFileSettings; class CppToolsPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CppTools.json") public: CppToolsPlugin(); diff --git a/src/plugins/cvs/cvsplugin.h b/src/plugins/cvs/cvsplugin.h index f95caff99c1..6f077e61a1a 100644 --- a/src/plugins/cvs/cvsplugin.h +++ b/src/plugins/cvs/cvsplugin.h @@ -74,6 +74,7 @@ struct CvsResponse class CvsPlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "CVS.json") public: CvsPlugin(); diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index c18f93bbe90..48504595729 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -53,6 +53,7 @@ class DebuggerStartParameters; class DEBUGGER_EXPORT DebuggerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Debugger.json") public: DebuggerPlugin(); diff --git a/src/plugins/designer/formeditorplugin.h b/src/plugins/designer/formeditorplugin.h index a6a9bab9597..6d11abeb037 100644 --- a/src/plugins/designer/formeditorplugin.h +++ b/src/plugins/designer/formeditorplugin.h @@ -41,6 +41,7 @@ namespace Internal { class FormEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Designer.json") public: FormEditorPlugin(); diff --git a/src/plugins/fakevim/fakevimplugin.h b/src/plugins/fakevim/fakevimplugin.h index 88f60f619c2..c7dba08b426 100644 --- a/src/plugins/fakevim/fakevimplugin.h +++ b/src/plugins/fakevim/fakevimplugin.h @@ -44,6 +44,7 @@ class FakeVimPluginPrivate; class FakeVimPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "FakeVim.json") public: FakeVimPlugin(); diff --git a/src/plugins/find/findplugin.h b/src/plugins/find/findplugin.h index f5862087dbf..9a34b9a3c9d 100644 --- a/src/plugins/find/findplugin.h +++ b/src/plugins/find/findplugin.h @@ -54,6 +54,7 @@ class CurrentDocumentFind; class FIND_EXPORT FindPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Find.json") public: FindPlugin(); diff --git a/src/plugins/genericprojectmanager/genericprojectplugin.h b/src/plugins/genericprojectmanager/genericprojectplugin.h index 277d219d55f..29b1477fa91 100644 --- a/src/plugins/genericprojectmanager/genericprojectplugin.h +++ b/src/plugins/genericprojectmanager/genericprojectplugin.h @@ -51,6 +51,7 @@ class ProjectFilesFactory; class GenericProjectPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "GenericProjectManager.json") public: GenericProjectPlugin(); diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index e8c3d15f0ca..75bab4fc58d 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -86,6 +86,7 @@ typedef QPair<Utils::ParameterAction *, Core::Command* > ParameterActionCommandP class GitPlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Git.json") public: GitPlugin(); diff --git a/src/plugins/glsleditor/glsleditorplugin.h b/src/plugins/glsleditor/glsleditorplugin.h index 4951cdeb46b..37e892b4726 100644 --- a/src/plugins/glsleditor/glsleditorplugin.h +++ b/src/plugins/glsleditor/glsleditorplugin.h @@ -73,6 +73,7 @@ class GLSLQuickFixCollector; class GLSLEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "GLSLEditor.json") public: GLSLEditorPlugin(); diff --git a/src/plugins/helloworld/helloworldplugin.h b/src/plugins/helloworld/helloworldplugin.h index 3e0852ca651..0702513b256 100644 --- a/src/plugins/helloworld/helloworldplugin.h +++ b/src/plugins/helloworld/helloworldplugin.h @@ -42,6 +42,7 @@ class HelloWorldPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "HelloWorld.json") public: HelloWorldPlugin(); diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h index 17c01383188..4a0b10df123 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -70,6 +70,7 @@ class SearchWidget; class HelpPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Help.json") public: HelpPlugin(); diff --git a/src/plugins/imageviewer/imageviewerplugin.h b/src/plugins/imageviewer/imageviewerplugin.h index 66aba081575..c077f7b767e 100644 --- a/src/plugins/imageviewer/imageviewerplugin.h +++ b/src/plugins/imageviewer/imageviewerplugin.h @@ -46,6 +46,7 @@ class ImageViewerFactory; class ImageViewerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ImageViewer.json") public: ImageViewerPlugin(); diff --git a/src/plugins/locator/locatorplugin.h b/src/plugins/locator/locatorplugin.h index 8c5a56a9e7e..99913c1bfa8 100644 --- a/src/plugins/locator/locatorplugin.h +++ b/src/plugins/locator/locatorplugin.h @@ -44,6 +44,10 @@ #include <QTimer> #include <QFutureWatcher> +#if QT_VERSION >= 0x050000 +# include <QtPlugin> +#endif + namespace Locator { namespace Internal { @@ -56,6 +60,7 @@ class LocatorPlugin; class LocatorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Locator.json") public: LocatorPlugin(); diff --git a/src/plugins/macros/macrosplugin.h b/src/plugins/macros/macrosplugin.h index f434508480b..39c85476869 100644 --- a/src/plugins/macros/macrosplugin.h +++ b/src/plugins/macros/macrosplugin.h @@ -44,6 +44,7 @@ namespace Internal { class MacrosPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Macros.json") public: MacrosPlugin(); diff --git a/src/plugins/madde/maddeplugin.h b/src/plugins/madde/maddeplugin.h index 1d686023424..60930b83c5a 100644 --- a/src/plugins/madde/maddeplugin.h +++ b/src/plugins/madde/maddeplugin.h @@ -41,6 +41,8 @@ namespace Internal { class MaddePlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Madde.json") + public: MaddePlugin(); ~MaddePlugin(); diff --git a/src/plugins/mercurial/mercurialplugin.h b/src/plugins/mercurial/mercurialplugin.h index f020d672446..17596be5f35 100644 --- a/src/plugins/mercurial/mercurialplugin.h +++ b/src/plugins/mercurial/mercurialplugin.h @@ -68,6 +68,7 @@ class MercurialSettings; class MercurialPlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Mercurial.json") public: MercurialPlugin(); diff --git a/src/plugins/perforce/perforceplugin.h b/src/plugins/perforce/perforceplugin.h index 1c2f7ed36cf..51ae8cc2bd3 100644 --- a/src/plugins/perforce/perforceplugin.h +++ b/src/plugins/perforce/perforceplugin.h @@ -80,6 +80,7 @@ struct PerforceResponse class PerforcePlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Perforce.json") public: PerforcePlugin(); diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index 49145de8f21..c111150cb1a 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -72,6 +72,7 @@ class PROJECTEXPLORER_EXPORT ProjectExplorerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ProjectExplorer.json") public: ProjectExplorerPlugin(); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h index ec5cbb9af31..87d192e24a8 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.h +++ b/src/plugins/qmldesigner/qmldesignerplugin.h @@ -65,6 +65,7 @@ class DesignModeContext; class BauhausPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlDesigner.json") public: BauhausPlugin(); diff --git a/src/plugins/qmljseditor/qmljseditorplugin.h b/src/plugins/qmljseditor/qmljseditorplugin.h index 1633f0fd84b..daafed94232 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.h +++ b/src/plugins/qmljseditor/qmljseditorplugin.h @@ -79,6 +79,7 @@ class QmlTaskManager; class QmlJSEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlJSEditor.json") public: QmlJSEditorPlugin(); diff --git a/src/plugins/qmljsinspector/qmljsinspectorplugin.h b/src/plugins/qmljsinspector/qmljsinspectorplugin.h index 34bedf6d659..d3322121fda 100644 --- a/src/plugins/qmljsinspector/qmljsinspectorplugin.h +++ b/src/plugins/qmljsinspector/qmljsinspectorplugin.h @@ -52,6 +52,7 @@ class InspectorUi; class InspectorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlJSInspector.json") public: InspectorPlugin(); diff --git a/src/plugins/qmljstools/qmljstoolsplugin.h b/src/plugins/qmljstools/qmljstoolsplugin.h index f35917fd4d8..54b8837a37d 100644 --- a/src/plugins/qmljstools/qmljstoolsplugin.h +++ b/src/plugins/qmljstools/qmljstoolsplugin.h @@ -56,6 +56,7 @@ class ModelManager; class QmlJSToolsPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlJSTools.json") public: static QmlJSToolsPlugin *instance() { return m_instance; } diff --git a/src/plugins/qmlprofiler/qmlprofilerplugin.h b/src/plugins/qmlprofiler/qmlprofilerplugin.h index 624d2a69880..6e0512e2e08 100644 --- a/src/plugins/qmlprofiler/qmlprofilerplugin.h +++ b/src/plugins/qmlprofiler/qmlprofilerplugin.h @@ -43,6 +43,7 @@ namespace Internal { class QmlProfilerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlProfiler.json") public: QmlProfilerPlugin() {} diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.h b/src/plugins/qmlprojectmanager/qmlprojectplugin.h index 224c572aac6..c9b10b7fe79 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectplugin.h +++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.h @@ -42,6 +42,7 @@ namespace QmlProjectManager { class QMLPROJECTMANAGER_EXPORT QmlProjectPlugin: public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlProjectManager.json") public: QmlProjectPlugin(); diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h index c0bbe0ce3aa..aa80311bf0c 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h @@ -59,6 +59,7 @@ class ProFileEditorFactory; class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Qt4ProjectManager.json") public: Qt4ProjectManagerPlugin(); diff --git a/src/plugins/qtsupport/qtsupportplugin.h b/src/plugins/qtsupport/qtsupportplugin.h index 8ea327febde..0400e313e9a 100644 --- a/src/plugins/qtsupport/qtsupportplugin.h +++ b/src/plugins/qtsupport/qtsupportplugin.h @@ -45,6 +45,7 @@ class ExamplesWelcomePage; class QtSupportPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QtSupport.json") public: bool initialize(const QStringList &arguments, QString *errorMessage); diff --git a/src/plugins/remotelinux/remotelinuxplugin.h b/src/plugins/remotelinux/remotelinuxplugin.h index 4ea667c8448..f8cc714074a 100644 --- a/src/plugins/remotelinux/remotelinuxplugin.h +++ b/src/plugins/remotelinux/remotelinuxplugin.h @@ -41,6 +41,7 @@ namespace Internal { class RemoteLinuxPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "RemoteLinux.json") public: RemoteLinuxPlugin(); diff --git a/src/plugins/resourceeditor/resourceeditorplugin.h b/src/plugins/resourceeditor/resourceeditorplugin.h index 60a5ee63af9..8415d623aad 100644 --- a/src/plugins/resourceeditor/resourceeditorplugin.h +++ b/src/plugins/resourceeditor/resourceeditorplugin.h @@ -49,6 +49,7 @@ class ResourceEditorFactory; class ResourceEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "ResourceEditor.json") public: ResourceEditorPlugin(); diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index e3487521016..aaf504a1425 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -79,6 +79,7 @@ struct SubversionResponse class SubversionPlugin : public VcsBase::VcsBasePlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Subversion.json") public: SubversionPlugin(); diff --git a/src/plugins/tasklist/tasklistplugin.h b/src/plugins/tasklist/tasklistplugin.h index c2647739869..57873d370db 100644 --- a/src/plugins/tasklist/tasklistplugin.h +++ b/src/plugins/tasklist/tasklistplugin.h @@ -47,6 +47,7 @@ class TaskListPluginPrivate; class TaskListPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "TaskList.json") public: TaskListPlugin(); diff --git a/src/plugins/texteditor/texteditorplugin.h b/src/plugins/texteditor/texteditorplugin.h index 1927cf8bb07..d518a67897c 100644 --- a/src/plugins/texteditor/texteditorplugin.h +++ b/src/plugins/texteditor/texteditorplugin.h @@ -55,6 +55,7 @@ class BaseTextMarkRegistry; class TextEditorPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "TextEditor.json") public: TextEditorPlugin(); diff --git a/src/plugins/todo/todoplugin.h b/src/plugins/todo/todoplugin.h index efac7a23233..537d89d735c 100755 --- a/src/plugins/todo/todoplugin.h +++ b/src/plugins/todo/todoplugin.h @@ -49,6 +49,8 @@ class TodoItem; class TodoPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Todo.json") + public: TodoPlugin(); ~TodoPlugin(); diff --git a/src/plugins/updateinfo/updateinfoplugin.h b/src/plugins/updateinfo/updateinfoplugin.h index fdc4c4c0e5b..0c8511e6c64 100644 --- a/src/plugins/updateinfo/updateinfoplugin.h +++ b/src/plugins/updateinfo/updateinfoplugin.h @@ -45,6 +45,8 @@ class UpdateInfoPluginPrivate; class UpdateInfoPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "UpdateInfo.json") + public: UpdateInfoPlugin(); virtual ~UpdateInfoPlugin(); diff --git a/src/plugins/valgrind/valgrindplugin.h b/src/plugins/valgrind/valgrindplugin.h index 937ce38d962..9aa9e9c946e 100644 --- a/src/plugins/valgrind/valgrindplugin.h +++ b/src/plugins/valgrind/valgrindplugin.h @@ -44,6 +44,7 @@ namespace Internal { class ValgrindPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Valgrind.json") public: ValgrindPlugin() {} diff --git a/src/plugins/vcsbase/vcsplugin.h b/src/plugins/vcsbase/vcsplugin.h index 0147ece563b..d60f13c2c14 100644 --- a/src/plugins/vcsbase/vcsplugin.h +++ b/src/plugins/vcsbase/vcsplugin.h @@ -51,6 +51,7 @@ class CoreListener; class VcsPlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "VcsBase.json") public: VcsPlugin(); diff --git a/src/plugins/welcome/welcomeplugin.h b/src/plugins/welcome/welcomeplugin.h index 68664e3103d..32cfb79e9f6 100644 --- a/src/plugins/welcome/welcomeplugin.h +++ b/src/plugins/welcome/welcomeplugin.h @@ -47,6 +47,8 @@ class WelcomeMode; class WelcomePlugin : public ExtensionSystem::IPlugin { Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Welcome.json") + public: WelcomePlugin(); diff --git a/src/qtcreatorplugin.pri b/src/qtcreatorplugin.pri index 1e659e6ab8d..53ceac018b9 100644 --- a/src/qtcreatorplugin.pri +++ b/src/qtcreatorplugin.pri @@ -57,6 +57,22 @@ copy2build.name = COPY ${QMAKE_FILE_IN} copy2build.CONFIG += no_link QMAKE_EXTRA_COMPILERS += copy2build +greaterThan(QT_MAJOR_VERSION, 4) { +# Create a Json file containing the plugin information required by +# Qt 5's plugin system by running a XSLT sheet on the +# pluginspec file before moc runs. + XMLPATTERNS = $$targetPath($$[QT_INSTALL_BINS]/xmlpatterns) + + pluginspec2json.name = Create Qt 5 plugin json file + pluginspec2json.input = PLUGINSPEC + pluginspec2json.variable_out = GENERATED_FILES + pluginspec2json.output = $${TARGET}.json + pluginspec2json.commands = $$XMLPATTERNS -no-format -output $$pluginspec2json.output $$PWD/pluginjsonmetadata.xsl $$PLUGINSPEC + pluginspec2json.CONFIG += no_link + moc_header.depends += $$pluginspec2json.output + QMAKE_EXTRA_COMPILERS += pluginspec2json +} + macx { !isEmpty(TIGER_COMPAT_MODE) { QMAKE_LFLAGS_SONAME = -Wl,-install_name,@executable_path/../PlugIns/$${PROVIDER}/ -- GitLab