diff options
author | Lincoln Ramsay <lincoln.ramsay@nokia.com> | 2012-04-13 16:23:26 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-16 07:49:11 +0200 |
commit | 8a36fce9f7f2db716327a611682a41c96e6d8472 (patch) | |
tree | 4fd3e22e13c94afbcb9c45121887531024e6ea88 /examples/sensors | |
parent | cf9442c184f1cd4b3e8baba517fc757085cd5ea5 (diff) |
Package the grue sensor example into a self-contained bundle.
Cleaner for deployment (no need to write to inaccessible system locations)
though it uses a bit of a hack to get QtSensors to find the backend plugin.
Change-Id: Ibfa765d928a2d57429832c68594bcbe38f9d6a6e
Reviewed-by: Zsolt Simon <zsolt.simon@nokia.com>
Diffstat (limited to 'examples/sensors')
-rw-r--r-- | examples/sensors/grue/import/import.pro | 6 | ||||
-rw-r--r-- | examples/sensors/grue/import/main.cpp | 14 | ||||
-rw-r--r-- | examples/sensors/grue/lib/lib.pro | 10 | ||||
-rw-r--r-- | examples/sensors/grue/plugin/plugin.pro | 6 | ||||
-rw-r--r-- | examples/sensors/grue/qml_app/main.qml | 1 |
5 files changed, 37 insertions, 0 deletions
diff --git a/examples/sensors/grue/import/import.pro b/examples/sensors/grue/import/import.pro index 34027c7c..1f74fa39 100644 --- a/examples/sensors/grue/import/import.pro +++ b/examples/sensors/grue/import/import.pro @@ -25,3 +25,9 @@ INSTALLS += qmldir OTHER_FILES += \ plugin.json qmldir + +!isEmpty(EXAMPLES_PREFIX) { + QMAKE_LFLAGS += -Wl,-rpath,$$EXAMPLES_PREFIX/com.nokia.mt.grue/lib + DEFINES += "BUNDLED_PLUGIN=\\\"$$EXAMPLES_PREFIX/com.nokia.mt.grue/plugins\\\"" +} + diff --git a/examples/sensors/grue/import/main.cpp b/examples/sensors/grue/import/main.cpp index 4924bde7..2e8583ec 100644 --- a/examples/sensors/grue/import/main.cpp +++ b/examples/sensors/grue/import/main.cpp @@ -43,6 +43,13 @@ #include <gruesensor.h> +#ifdef BUNDLED_PLUGIN +#include <QFile> +#include <QCoreApplication> +#include <QQmlEngine> +#include <QStringList> +#endif + QT_BEGIN_NAMESPACE class GrueSensorQmlImport : public QQmlExtensionPlugin @@ -50,6 +57,13 @@ class GrueSensorQmlImport : public QQmlExtensionPlugin Q_OBJECT Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface" FILE "plugin.json") public: +#ifdef BUNDLED_PLUGIN + GrueSensorQmlImport() + { + QCoreApplication::addLibraryPath(QString::fromLocal8Bit(BUNDLED_PLUGIN)); + } +#endif + virtual void registerTypes(const char *uri) { char const * const package = "Grue"; diff --git a/examples/sensors/grue/lib/lib.pro b/examples/sensors/grue/lib/lib.pro index 7e087baa..e048e607 100644 --- a/examples/sensors/grue/lib/lib.pro +++ b/examples/sensors/grue/lib/lib.pro @@ -15,3 +15,13 @@ SOURCES += gruesensor.cpp\ target.path=$$[QT_INSTALL_LIBS] INSTALLS += target +MT_SYSROOT=$$(MT_SYSROOT) +!isEmpty(MT_SYSROOT):EXAMPLES_PREFIX=/opt/mt/applications +!isEmpty(EXAMPLES_PREFIX) { + target.path = $$EXAMPLES_PREFIX/com.nokia.mt.grue/lib + remove_so.commands = "rm $(INSTALL_ROOT)$${target.path}/lib$${TARGET}.so" + remove_so.CONFIG = no_path + remove_so.depends = install_target + INSTALLS += remove_so +} + diff --git a/examples/sensors/grue/plugin/plugin.pro b/examples/sensors/grue/plugin/plugin.pro index 489a1cec..32e127f1 100644 --- a/examples/sensors/grue/plugin/plugin.pro +++ b/examples/sensors/grue/plugin/plugin.pro @@ -19,3 +19,9 @@ INSTALLS += target OTHER_FILES += \ plugin.json +MT_SYSROOT=$$(MT_SYSROOT) +!isEmpty(MT_SYSROOT):EXAMPLES_PREFIX=/opt/mt/applications +!isEmpty(EXAMPLES_PREFIX) { + target.path = $$EXAMPLES_PREFIX/com.nokia.mt.grue/plugins/sensors +} + diff --git a/examples/sensors/grue/qml_app/main.qml b/examples/sensors/grue/qml_app/main.qml index 5b619c69..05d267c7 100644 --- a/examples/sensors/grue/qml_app/main.qml +++ b/examples/sensors/grue/qml_app/main.qml @@ -76,6 +76,7 @@ Rectangle { Text { id: text anchors.top: parent.top + anchors.topMargin: 20 anchors.left: parent.left anchors.right: parent.right text: "I can't tell if you're going to be eaten by a Grue or not. You're on your own!" |