summaryrefslogtreecommitdiffstats
path: root/examples/uml
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-10-28 20:12:54 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-10-29 00:09:20 +0100
commit28bc3e761e7340bf92e45dbfa3325ae2cbe3c75f (patch)
treedc8bb07705504cdb7bbce3c3d8b8112b1168fe90 /examples/uml
parent332d64c08719a42c7ace5bf324744b786109b5bb (diff)
Fix plugin's DESTDIR and loading
Change-Id: I11318205d1347acb38ba0df905b638e0ad958724 Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'examples/uml')
-rw-r--r--examples/uml/duse-mt/duse-mt.pri1
-rw-r--r--examples/uml/duse-mt/src/app/shell/mainwindow.cpp16
-rw-r--r--examples/uml/duse-mt/src/duse-mt-plugin.pri20
-rw-r--r--examples/uml/duse-mt/src/plugins/modelinspector/modelinspector.pro19
-rw-r--r--examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp2
-rw-r--r--examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h2
-rw-r--r--examples/uml/duse-mt/src/plugins/plugins.pro4
-rw-r--r--examples/uml/duse-mt/src/src.pro3
8 files changed, 40 insertions, 27 deletions
diff --git a/examples/uml/duse-mt/duse-mt.pri b/examples/uml/duse-mt/duse-mt.pri
index 3c0ddb20..8b547ac5 100644
--- a/examples/uml/duse-mt/duse-mt.pri
+++ b/examples/uml/duse-mt/duse-mt.pri
@@ -12,3 +12,4 @@ INCLUDEPATH += \
DUSEMT_APP_TARGET = duse-mt
DUSEMT_APP_PATH = $$DUSEMT_SOURCE_TREE/bin
+DUSEMT_PLUGIN_PATH = $$DUSEMT_LIBRARY_PATH/plugins
diff --git a/examples/uml/duse-mt/src/app/shell/mainwindow.cpp b/examples/uml/duse-mt/src/app/shell/mainwindow.cpp
index 89b0d923..b8a837e4 100644
--- a/examples/uml/duse-mt/src/app/shell/mainwindow.cpp
+++ b/examples/uml/duse-mt/src/app/shell/mainwindow.cpp
@@ -719,13 +719,19 @@ void MainWindow::loadPlugins()
if (plugin && (metaModelPlugin = qobject_cast<QMetaModelPlugin *>(plugin)))
_loadedPlugins.insert(loader.metaData().value(QString::fromLatin1("MetaData")).toObject().value(QString::fromLatin1("MetaModelNamespaceUri")).toString(), QPair<QMetaModelPlugin *, QJsonObject>(metaModelPlugin, loader.metaData().value(QString::fromLatin1("MetaData")).toObject()));
}
- QDir dusePluginsDir(pluginPath);
- dusePluginsDir.cd("plugins");
- foreach (QString fileName, dusePluginsDir.entryList(QDir::Files)) {
- QPluginLoader loader(dusePluginsDir.absoluteFilePath(fileName));
+ }
+ QDir dusePluginsDir(QCoreApplication::applicationDirPath());
+ dusePluginsDir.cd("../lib/duse-mt/plugins");
+ const QFileInfoList subdirs = dusePluginsDir.entryInfoList(QDir::Dirs|QDir::NoDotAndDotDot);
+ foreach (const QFileInfo &subdir, subdirs) {
+ QDir dusePluginSubDir(subdir.absoluteFilePath());
+ foreach (QString fileName, dusePluginSubDir.entryList(QDir::Files)) {
+ QPluginLoader loader(dusePluginSubDir.absoluteFilePath(fileName));
QObject *plugin = loader.instance();
- if (plugin && (dusePlugin = qobject_cast<DuSE::IPlugin *>(plugin)))
+ if (plugin && (dusePlugin = qobject_cast<DuSE::IPlugin *>(plugin))) {
+ qDebug() << "Achei duse-mt plugin:" << dusePluginsDir.absoluteFilePath(fileName);
dusePlugin->initialize(core);
+ }
}
}
}
diff --git a/examples/uml/duse-mt/src/duse-mt-plugin.pri b/examples/uml/duse-mt/src/duse-mt-plugin.pri
new file mode 100644
index 00000000..50e76593
--- /dev/null
+++ b/examples/uml/duse-mt/src/duse-mt-plugin.pri
@@ -0,0 +1,20 @@
+include(../duse-mt.pri)
+
+isEmpty(PROVIDER) {
+ PROVIDER = QtProject
+} else {
+ LIBS += -L$$DUSEMT_PLUGIN_PATH/QtProject
+}
+
+DESTDIR = $$DUSEMT_PLUGIN_PATH/$$PROVIDER
+LIBS += -L$$DESTDIR
+
+QMAKE_RPATHDIR += \$\$ORIGIN
+QMAKE_RPATHDIR += \$\$ORIGIN/..
+QMAKE_RPATHDIR += \$\$ORIGIN/../..
+DUSEMT_PLUGIN_RPATH = $$join(QMAKE_RPATHDIR, ":")
+QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$${DUSEMT_PLUGIN_RPATH}\'
+QMAKE_RPATHDIR =
+
+TEMPLATE = lib
+CONFIG += plugin plugin_with_soname
diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspector.pro b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspector.pro
index e9ea98f7..7dddc0f9 100644
--- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspector.pro
+++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspector.pro
@@ -4,26 +4,9 @@
#
#-------------------------------------------------
-QT += core
-
-TARGET = modelinspector
-TEMPLATE = lib
-CONFIG += plugin
-
-DESTDIR = ../
+include(../../duse-mt-plugin.pri)
SOURCES += modelinspectorplugin.cpp
HEADERS += modelinspectorplugin.h
OTHER_FILES += modelinspector.json
-
-LIBS += -lduseinterfaces
-
-unix:!symbian {
- maemo5 {
- target.path = /opt/usr/lib
- } else {
- target.path = /usr/lib
- }
- INSTALLS += target
-}
diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
index 552e8ef9..33dd708c 100644
--- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
+++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
#include "modelinspectorplugin.h"
-#include "../../interfaces/iuicontroller.h"
+#include <interfaces/iuicontroller.h>
#include <QtWidgets/QPushButton>
diff --git a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
index 386647e8..e4b72c72 100644
--- a/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
+++ b/examples/uml/duse-mt/src/plugins/modelinspector/modelinspectorplugin.h
@@ -41,7 +41,7 @@
#ifndef MODELINSPECTORPLUGIN_H
#define MODELINSPECTORPLUGIN_H
-#include "../../interfaces/iplugin.h"
+#include <interfaces/iplugin.h>
class ModelInspectorPlugin : public DuSE::IPlugin
{
diff --git a/examples/uml/duse-mt/src/plugins/plugins.pro b/examples/uml/duse-mt/src/plugins/plugins.pro
new file mode 100644
index 00000000..ae7af4d1
--- /dev/null
+++ b/examples/uml/duse-mt/src/plugins/plugins.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+CONFIG += ordered
+
+SUBDIRS = modelinspector
diff --git a/examples/uml/duse-mt/src/src.pro b/examples/uml/duse-mt/src/src.pro
index 9b827b01..f67f6625 100644
--- a/examples/uml/duse-mt/src/src.pro
+++ b/examples/uml/duse-mt/src/src.pro
@@ -1,5 +1,4 @@
TEMPLATE = subdirs
CONFIG += ordered
-#SUBDIRS = libs app plugins
-SUBDIRS = libs app
+SUBDIRS = libs app plugins