summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-12-29 18:51:16 -0500
committerScott Murray <scott.murray@konsulko.com>2019-12-29 18:51:16 -0500
commit0af7702519b7106a7775497475e3e57bea62a363 (patch)
tree33e69b4b8bb0e5f9c94d5e0f7eb9f14f2f1dc844
parent0be8a1ddb505354f6ab028f2af359674211c0273 (diff)
Add qt-qrcode recipe for use in settings app
Add a recipe for the qt-qrcode libqrencode wrapper library to allow using it to display QR codes in the settings app, and update the settings app dependencies to add it as a dependency. As cleanup, the qtwebsockets dependency has been dropped from settings since it no longer requires it. Bug-AGL: SPEC-2981 Change-Id: Ia0d40ea1151765fa967457bf2ab6624dc7bc259d Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--recipes-demo-hmi/settings/settings_git.bb8
-rw-r--r--recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch181
-rw-r--r--recipes-qt/qt-qrcode/qt-qrcode_git.bb18
3 files changed, 204 insertions, 3 deletions
diff --git a/recipes-demo-hmi/settings/settings_git.bb b/recipes-demo-hmi/settings/settings_git.bb
index 360408231..72e0323ff 100644
--- a/recipes-demo-hmi/settings/settings_git.bb
+++ b/recipes-demo-hmi/settings/settings_git.bb
@@ -13,12 +13,14 @@ PV = "1.0+git${SRCPV}"
S = "${WORKDIR}/git"
# build-time dependencies
-DEPENDS += "libqtappfw qtquickcontrols2 qtwebsockets"
+DEPENDS += "libqtappfw qtquickcontrols2 qt-qrcode"
DEPENDS += "libhomescreen qlibwindowmanager qtvirtualkeyboard"
# runtime dependencies
RDEPENDS_${PN} += " \
- agl-service-bluetooth \
- agl-service-network"
+ qt-qrcode \
+ agl-service-bluetooth \
+ agl-service-network \
+"
inherit qmake5 aglwgt
diff --git a/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch b/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch
new file mode 100644
index 000000000..76795268c
--- /dev/null
+++ b/recipes-qt/qt-qrcode/qt-qrcode/0001-rework-library-build.patch
@@ -0,0 +1,181 @@
+Rework library build
+
+Rework qmake files to build libraries out of the quickitem and widget
+code instead of sample programs. This allows using the associated
+classes without copying the source and running afoul of the LGPL
+licensing. Also add pkgconfig file generation to simplify usage, fix
+header installation, and use pkgconfig to pull in libqrencode instead
+of having to clone a copy in-tree and building it.
+
+Upstream-Status: inappropriate [embedded-specific]
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/lib/lib.pro b/lib/lib.pro
+index d046bc4..6b6c199 100644
+--- a/lib/lib.pro
++++ b/lib/lib.pro
+@@ -1,6 +1,9 @@
+ TARGET = qtqrcode
+ TEMPLATE = lib
+
++CONFIG += link_pkgconfig create_pc create_prl no_install_prl
++PKGCONFIG += libqrencode
++
+ DEFINES += \
+ QTQRCODE_LIBRARY \
+ QTQRCODE_PLUS_FEATURES
+@@ -12,7 +15,8 @@ contains(DEFINES, QTQRCODE_PLUS_FEATURES) {
+ qtqrcodepainter.cpp
+
+ HEADERS +=\
+- qtqrcodepainter.h
++ qtqrcodepainter.h \
++ QtQrCodePainter
+
+ } else {
+ QT -= gui
+@@ -23,16 +27,29 @@ SOURCES += \
+
+ HEADERS +=\
+ qtqrcode_global.h \
+- qtqrcode.h
++ qtqrcode.h \
++ QtQrCode
+
+ INCLUDEPATH += $$PWD
+
+ include(../defaults.pri)
+-include(libqrencode.pri)
+ # Default rules for deployment.
+ include(deployment.pri)
+
+ unix {
++ headers.path = /usr/include
+ target.path = /usr/lib
+- INSTALLS += target
+ }
++
++headers.files = $$HEADERS
++
++INSTALLS += headers
++
++QMAKE_PKGCONFIG_NAME = qtqrcode
++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME}
++QMAKE_PKGCONFIG_VERSION = $${VERSION}
++QMAKE_PKGCONFIG_DESCRIPTION = A wrapper interface for qrencode for Qt
++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include
++QMAKE_PKGCONFIG_REQUIRES = libqrencode
++QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+diff --git a/lib/qtqrcode.h b/lib/qtqrcode.h
+index 2a7a1ff..0830826 100644
+--- a/lib/qtqrcode.h
++++ b/lib/qtqrcode.h
+@@ -31,7 +31,7 @@
+ #include <QByteArray>
+ #include <QSharedDataPointer>
+
+-#include "libqrencode/qrencode.h"
++#include <qrencode.h>
+
+ class QtQrCodeData;
+
+diff --git a/quickitem/quickitem.pro b/quickitem/quickitem.pro
+index ecfef1b..067dc46 100644
+--- a/quickitem/quickitem.pro
++++ b/quickitem/quickitem.pro
+@@ -1,5 +1,7 @@
+-TEMPLATE = app
+-TARGET = QuickItem
++TEMPLATE = lib
++TARGET = qtqrcode-quickitem
++
++CONFIG += create_pc create_prl no_install_prl
+
+ QT += qml quick widgets
+
+@@ -7,7 +9,7 @@ LIBS += -L../lib -lqtqrcode
+
+ DEFINES +=
+
+-SOURCES += main.cpp \
++SOURCES += \
+ QtQrCodeQuickItem.cpp
+
+ HEADERS += \
+@@ -21,3 +23,21 @@ QML_IMPORT_PATH =
+ include(../defaults.pri)
+ # Default rules for deployment.
+ include(deployment.pri)
++
++unix {
++ headers.path = /usr/include
++ target.path = /usr/lib
++}
++
++headers.files = $$HEADERS
++
++INSTALLS += headers
++
++QMAKE_PKGCONFIG_NAME = qtqrcode-quickitem
++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME}
++QMAKE_PKGCONFIG_VERSION = $${VERSION}
++QMAKE_PKGCONFIG_DESCRIPTION = Qt QuickItem wrapper for qt-qrcode library
++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include
++QMAKE_PKGCONFIG_REQUIRES = qtqrcode
++QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+diff --git a/widget/widget.pro b/widget/widget.pro
+index 2e26a8c..63add50 100644
+--- a/widget/widget.pro
++++ b/widget/widget.pro
+@@ -1,5 +1,7 @@
+-TEMPLATE = app
+-TARGET = Widget
++TEMPLATE = lib
++TARGET = qtqrcode-widget
++
++CONFIG += create_pc create_prl no_install_prl
+
+ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+@@ -9,18 +11,28 @@ LIBS += -L../lib -lqtqrcode
+
+ DEFINES +=
+
+-SOURCES += main.cpp\
+- MainWindow.cpp \
+- QtQrCodeWidget.cpp
+-
+-HEADERS += MainWindow.hpp \
+- QtQrCodeWidget.hpp
++SOURCES += QtQrCodeWidget.cpp
+
+-FORMS += MainWindow.ui
+-
+-CONFIG += mobility
+-MOBILITY =
++HEADERS += QtQrCodeWidget.hpp
+
+ include(../defaults.pri)
+ # Default rules for deployment.
+ include(deployment.pri)
++
++unix {
++ headers.path = /usr/include
++ target.path = /usr/lib
++}
++
++headers.files = $$HEADERS
++
++INSTALLS += headers
++
++QMAKE_PKGCONFIG_NAME = qtqrcode-widget
++QMAKE_PKGCONFIG_FILE = $${QMAKE_PKGCONFIG_NAME}
++QMAKE_PKGCONFIG_VERSION = $${VERSION}
++QMAKE_PKGCONFIG_DESCRIPTION = Qt widget wrapper for qt-qrcode library
++QMAKE_PKGCONFIG_LIBDIR = ${prefix}/lib
++QMAKE_PKGCONFIG_INCDIR = ${prefix}/include
++QMAKE_PKGCONFIG_REQUIRES = qtqrcode
++QMAKE_PKGCONFIG_DESTDIR = pkgconfig
diff --git a/recipes-qt/qt-qrcode/qt-qrcode_git.bb b/recipes-qt/qt-qrcode/qt-qrcode_git.bb
new file mode 100644
index 000000000..8b3ff79a9
--- /dev/null
+++ b/recipes-qt/qt-qrcode/qt-qrcode_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Qt QR code library"
+DESCRIPTION = "Qt/C++ library for encoding and visualization of data in a \
+QR Code symbol. This library consists of a Qt wrapper for libqrencode, and \
+Qt components that are able to visualize the result."
+LICENSE = "LGPLv3+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=94a3f3bdf61243b5e5cf569fbfbbea52"
+
+DEPENDS = "qtbase qtdeclarative qtquickcontrols2 qtsvg qrencode"
+
+SRC_URI = "git://github.com/danielsanfr/qt-qrcode.git;protocol=https \
+ file://0001-rework-library-build.patch \
+"
+SRCREV = "2d57d9c6e2341689d10f9360a16a08831a4a820b"
+
+PV = "git${SRCPV}"
+S = "${WORKDIR}/git/"
+
+inherit qmake5