summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron McCarthy <mccarthy.aaron@gmail.com>2012-10-01 13:28:16 +1000
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-01 12:04:55 +0200
commitf3d8f66116af4319650d8f3e7ca069275fdfa780 (patch)
tree2b7dc73c029adfdf0302409a2422b3df4d9e5c54
parent3f4a920f87842e1bbb20f72ce04d6da7a866ab1d (diff)
Further porting of NFC module from mobility to Qt 5.
Includes the following changes: * Conditionally enables building of the NFC module when qmake is run with CONFIG+=nfc. * Correctly build within the QtNfc namespace. * Fix compile errors in examples, enable building of NFC examples. * Fix compile errors in tests, enable building of NFC tests. Mark the some NFC tests as insignificant as they currently crash. Notably does not enable NFC documentation generation. Task-number: QTBUG-22015 Change-Id: I9ff170c45848c8f0215e9427797922f840c2f015 Reviewed-by: Alex <ablasche@gmail.com>
-rw-r--r--examples/examples.pro11
-rw-r--r--examples/nfc/nfc.pro7
-rw-r--r--examples/nfc/poster/poster.pro2
-rw-r--r--examples/nfc/poster/qmlposter.cpp2
-rw-r--r--src/imports/imports.pro5
-rw-r--r--src/imports/nfc/nfc.pro2
-rw-r--r--src/imports/nfc/plugin.cpp14
-rw-r--r--src/imports/nfc/qdeclarativenearfield.cpp50
-rw-r--r--src/imports/nfc/qdeclarativenearfield_p.h38
-rw-r--r--src/imports/nfc/qdeclarativenearfieldsocket_p.h11
-rw-r--r--src/nfc/nfc.pro7
-rw-r--r--src/nfc/qdeclarativendefrecord.cpp2
-rw-r--r--src/nfc/qllcpserver.cpp2
-rw-r--r--src/nfc/qllcpserver_maemo6_p.cpp2
-rw-r--r--src/nfc/qllcpsocket.cpp2
-rw-r--r--src/nfc/qllcpsocket_maemo6_p.cpp2
-rw-r--r--src/nfc/qnearfieldmanager.cpp3
-rw-r--r--src/nfc/qnearfieldmanager.h1
-rw-r--r--src/nfc/qnearfieldmanager_emulator.cpp4
-rw-r--r--src/nfc/qnearfieldmanager_emulator_p.h8
-rw-r--r--src/nfc/qnearfieldmanager_maemo6.cpp2
-rw-r--r--src/nfc/qnearfieldmanager_simulator.cpp5
-rw-r--r--src/nfc/qnearfieldmanagerimpl_p.cpp1
-rw-r--r--src/nfc/qnearfieldmanagervirtualbase.cpp2
-rw-r--r--src/nfc/qnearfieldtagtype1.cpp2
-rw-r--r--src/nfc/qnearfieldtagtype2.cpp2
-rw-r--r--src/nfc/qnearfieldtagtype3.cpp2
-rw-r--r--src/nfc/qnearfieldtagtype4.cpp2
-rw-r--r--src/nfc/qnearfieldtarget.cpp2
-rw-r--r--src/nfc/qnearfieldtarget_emulator.cpp15
-rw-r--r--src/nfc/qnearfieldtarget_emulator_p.h8
-rw-r--r--src/nfc/targetemulator.cpp12
-rw-r--r--src/nfc/targetemulator_p.h11
-rw-r--r--src/src.pro13
-rw-r--r--sync.profile2
-rw-r--r--tests/auto/auto.pro67
-rw-r--r--tests/auto/qnearfieldmanager/qnearfieldmanager.pro23
-rw-r--r--tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp8
-rw-r--r--tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro22
-rw-r--r--tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp8
-rw-r--r--tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro23
-rw-r--r--tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp8
-rw-r--r--tests/tests.pro5
43 files changed, 252 insertions, 168 deletions
diff --git a/examples/examples.pro b/examples/examples.pro
index 36b1ecb5..a6efc9a0 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -1,11 +1,4 @@
TEMPLATE = subdirs
-!contains(QT_CONFIG, no-widgets) {
- SUBDIRS += bluetooth
-}
-SUBDIRS += bluetooth
-
-#Qt NFC based examples
-#SUBDIRS += poster \
-# ndefeditor \
-# annotatedurl
+!isEmpty(QT.bluetooth.name):SUBDIRS += bluetooth
+!isEmpty(QT.nfc.name):SUBDIRS += nfc
diff --git a/examples/nfc/nfc.pro b/examples/nfc/nfc.pro
new file mode 100644
index 00000000..d219924c
--- /dev/null
+++ b/examples/nfc/nfc.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+!contains(QT_CONFIG, no-widgets) {
+ SUBDIRS += \
+ annotatedurl \
+ ndefeditor \
+ poster
+}
diff --git a/examples/nfc/poster/poster.pro b/examples/nfc/poster/poster.pro
index de2e1a05..d108b2a2 100644
--- a/examples/nfc/poster/poster.pro
+++ b/examples/nfc/poster/poster.pro
@@ -1,4 +1,4 @@
-QT += declarative quick network nfc widgets
+QT += qml quick network nfc widgets
SOURCES += \
qmlposter.cpp
diff --git a/examples/nfc/poster/qmlposter.cpp b/examples/nfc/poster/qmlposter.cpp
index 606a96f8..cb75c2a1 100644
--- a/examples/nfc/poster/qmlposter.cpp
+++ b/examples/nfc/poster/qmlposter.cpp
@@ -39,8 +39,8 @@
****************************************************************************/
#include <QtWidgets/QApplication>
+#include <QtQml/QQmlEngine>
#include <QtQuick/QQuickView>
-#include <QtDeclarative/QDeclarativeEngine>
int main(int argc, char *argv[])
{
diff --git a/src/imports/imports.pro b/src/imports/imports.pro
index 7403281d..a6efc9a0 100644
--- a/src/imports/imports.pro
+++ b/src/imports/imports.pro
@@ -1,5 +1,4 @@
TEMPLATE = subdirs
-SUBDIRS += bluetooth
-#The Qt NFC module is currently not supported
-#SUBDIRS += nfc
+!isEmpty(QT.bluetooth.name):SUBDIRS += bluetooth
+!isEmpty(QT.nfc.name):SUBDIRS += nfc
diff --git a/src/imports/nfc/nfc.pro b/src/imports/nfc/nfc.pro
index 61b81c2c..bed94d5f 100644
--- a/src/imports/nfc/nfc.pro
+++ b/src/imports/nfc/nfc.pro
@@ -1,4 +1,4 @@
-QT += declarative nfc
+QT = core qml nfc
# Input
HEADERS += \
diff --git a/src/imports/nfc/plugin.cpp b/src/imports/nfc/plugin.cpp
index 76c98836..3a42d181 100644
--- a/src/imports/nfc/plugin.cpp
+++ b/src/imports/nfc/plugin.cpp
@@ -39,12 +39,10 @@
**
****************************************************************************/
+#include <QtQml/QQmlEngine>
+#include <QtQml/QQmlExtensionPlugin>
-#include <QtDeclarative/QDeclarativeEngine>
-#include <QtDeclarative/QDeclarativeExtensionPlugin>
-
-#include <qdeclarativendefrecord.h>
-
+#include "qdeclarativendefrecord.h"
#include "qdeclarativenearfieldsocket_p.h"
#include "qdeclarativenearfield_p.h"
#include "qdeclarativendeffilter_p.h"
@@ -54,15 +52,19 @@
QT_USE_NAMESPACE
-class QNfcQmlPlugin : public QDeclarativeExtensionPlugin
+class QNfcQmlPlugin : public QQmlExtensionPlugin
{
Q_OBJECT
+
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+
public:
void registerTypes(const char *uri)
{
Q_ASSERT(uri == QLatin1String("QtNfc"));
+ // @uri QtNfc
+
int major = 5;
int minor = 0;
qmlRegisterType<QDeclarativeNearFieldSocket>(uri, major, minor, "NearFieldSocket");
diff --git a/src/imports/nfc/qdeclarativenearfield.cpp b/src/imports/nfc/qdeclarativenearfield.cpp
index ca46a880..6c9577a4 100644
--- a/src/imports/nfc/qdeclarativenearfield.cpp
+++ b/src/imports/nfc/qdeclarativenearfield.cpp
@@ -106,23 +106,23 @@ QDeclarativeNearField::QDeclarativeNearField(QObject *parent)
{
}
-QDeclarativeListProperty<QDeclarativeNdefRecord> QDeclarativeNearField::messageRecords()
+QQmlListProperty<QDeclarativeNdefRecord> QDeclarativeNearField::messageRecords()
{
- return QDeclarativeListProperty<QDeclarativeNdefRecord>(this, 0,
- &QDeclarativeNearField::append_messageRecord,
- &QDeclarativeNearField::count_messageRecords,
- &QDeclarativeNearField::at_messageRecord,
- &QDeclarativeNearField::clear_messageRecords);
+ return QQmlListProperty<QDeclarativeNdefRecord>(this, 0,
+ &QDeclarativeNearField::append_messageRecord,
+ &QDeclarativeNearField::count_messageRecords,
+ &QDeclarativeNearField::at_messageRecord,
+ &QDeclarativeNearField::clear_messageRecords);
}
-QDeclarativeListProperty<QDeclarativeNdefFilter> QDeclarativeNearField::filter()
+QQmlListProperty<QDeclarativeNdefFilter> QDeclarativeNearField::filter()
{
- return QDeclarativeListProperty<QDeclarativeNdefFilter>(this, 0,
- &QDeclarativeNearField::append_filter,
- &QDeclarativeNearField::count_filters,
- &QDeclarativeNearField::at_filter,
- &QDeclarativeNearField::clear_filter);
+ return QQmlListProperty<QDeclarativeNdefFilter>(this, 0,
+ &QDeclarativeNearField::append_filter,
+ &QDeclarativeNearField::count_filters,
+ &QDeclarativeNearField::at_filter,
+ &QDeclarativeNearField::clear_filter);
}
bool QDeclarativeNearField::orderMatch() const
@@ -183,7 +183,7 @@ void QDeclarativeNearField::_q_handleNdefMessage(const QNdefMessage &message)
{
m_messageUpdating = true;
- QDeclarativeListReference listRef(this, "messageRecords");
+ QQmlListReference listRef(this, "messageRecords");
listRef.clear();
@@ -195,8 +195,8 @@ void QDeclarativeNearField::_q_handleNdefMessage(const QNdefMessage &message)
emit messageRecordsChanged();
}
-void QDeclarativeNearField::append_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list,
- QDeclarativeNdefRecord *record)
+void QDeclarativeNearField::append_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list,
+ QDeclarativeNdefRecord *record)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -208,7 +208,7 @@ void QDeclarativeNearField::append_messageRecord(QDeclarativeListProperty<QDecla
emit nearField->messageRecordsChanged();
}
-int QDeclarativeNearField::count_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list)
+int QDeclarativeNearField::count_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -217,8 +217,8 @@ int QDeclarativeNearField::count_messageRecords(QDeclarativeListProperty<QDeclar
return nearField->m_message.count();
}
-QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list,
- int index)
+QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list,
+ int index)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -227,7 +227,7 @@ QDeclarativeNdefRecord *QDeclarativeNearField::at_messageRecord(QDeclarativeList
return nearField->m_message.at(index);
}
-void QDeclarativeNearField::clear_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list)
+void QDeclarativeNearField::clear_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (nearField) {
@@ -238,8 +238,8 @@ void QDeclarativeNearField::clear_messageRecords(QDeclarativeListProperty<QDecla
}
}
-void QDeclarativeNearField::append_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list,
- QDeclarativeNdefFilter *filter)
+void QDeclarativeNearField::append_filter(QQmlListProperty<QDeclarativeNdefFilter> *list,
+ QDeclarativeNdefFilter *filter)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -253,7 +253,7 @@ void QDeclarativeNearField::append_filter(QDeclarativeListProperty<QDeclarativeN
nearField->registerMessageHandler();
}
-int QDeclarativeNearField::count_filters(QDeclarativeListProperty<QDeclarativeNdefFilter> *list)
+int QDeclarativeNearField::count_filters(QQmlListProperty<QDeclarativeNdefFilter> *list)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -262,8 +262,8 @@ int QDeclarativeNearField::count_filters(QDeclarativeListProperty<QDeclarativeNd
return nearField->m_filter.count();
}
-QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list,
- int index)
+QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QQmlListProperty<QDeclarativeNdefFilter> *list,
+ int index)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
@@ -272,7 +272,7 @@ QDeclarativeNdefFilter *QDeclarativeNearField::at_filter(QDeclarativeListPropert
return nearField->m_filter.at(index);
}
-void QDeclarativeNearField::clear_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list)
+void QDeclarativeNearField::clear_filter(QQmlListProperty<QDeclarativeNdefFilter> *list)
{
QDeclarativeNearField *nearField = qobject_cast<QDeclarativeNearField *>(list->object);
if (!nearField)
diff --git a/src/imports/nfc/qdeclarativenearfield_p.h b/src/imports/nfc/qdeclarativenearfield_p.h
index 47f0fc13..fe7c6b6e 100644
--- a/src/imports/nfc/qdeclarativenearfield_p.h
+++ b/src/imports/nfc/qdeclarativenearfield_p.h
@@ -43,32 +43,32 @@
#define QDECLARATIVENEARFIELD_P_H
#include <QtCore/QObject>
-#include <QtDeclarative/qdeclarative.h>
-#include <QtDeclarative/QDeclarativeParserStatus>
+#include <QtQml/qqml.h>
+#include <QtQml/QQmlParserStatus>
+#include <QtNfc/QNearFieldManager>
-#include <qnearfieldmanager.h>
-#include <qdeclarativendefrecord.h>
+#include "qdeclarativendefrecord.h"
class QDeclarativeNdefFilter;
QTNFC_USE_NAMESPACE
-class QDeclarativeNearField : public QObject, public QDeclarativeParserStatus
+class QDeclarativeNearField : public QObject, public QQmlParserStatus
{
Q_OBJECT
- Q_PROPERTY(QDeclarativeListProperty<QDeclarativeNdefRecord> messageRecords READ messageRecords NOTIFY messageRecordsChanged)
- Q_PROPERTY(QDeclarativeListProperty<QDeclarativeNdefFilter> filter READ filter NOTIFY filterChanged)
+ Q_PROPERTY(QQmlListProperty<QDeclarativeNdefRecord> messageRecords READ messageRecords NOTIFY messageRecordsChanged)
+ Q_PROPERTY(QQmlListProperty<QDeclarativeNdefFilter> filter READ filter NOTIFY filterChanged)
Q_PROPERTY(bool orderMatch READ orderMatch WRITE setOrderMatch NOTIFY orderMatchChanged)
- Q_INTERFACES(QDeclarativeParserStatus)
+ Q_INTERFACES(QQmlParserStatus)
public:
explicit QDeclarativeNearField(QObject *parent = 0);
- QDeclarativeListProperty<QDeclarativeNdefRecord> messageRecords();
+ QQmlListProperty<QDeclarativeNdefRecord> messageRecords();
- QDeclarativeListProperty<QDeclarativeNdefFilter> filter();
+ QQmlListProperty<QDeclarativeNdefFilter> filter();
bool orderMatch() const;
void setOrderMatch(bool on);
@@ -97,19 +97,19 @@ private:
void registerMessageHandler();
- static void append_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list,
+ static void append_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list,
QDeclarativeNdefRecord *record);
- static int count_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list);
- static QDeclarativeNdefRecord *at_messageRecord(QDeclarativeListProperty<QDeclarativeNdefRecord> *list,
+ static int count_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list);
+ static QDeclarativeNdefRecord *at_messageRecord(QQmlListProperty<QDeclarativeNdefRecord> *list,
int index);
- static void clear_messageRecords(QDeclarativeListProperty<QDeclarativeNdefRecord> *list);
+ static void clear_messageRecords(QQmlListProperty<QDeclarativeNdefRecord> *list);
- static void append_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list,
+ static void append_filter(QQmlListProperty<QDeclarativeNdefFilter> *list,
QDeclarativeNdefFilter *filter);
- static int count_filters(QDeclarativeListProperty<QDeclarativeNdefFilter> *list);
- static QDeclarativeNdefFilter *at_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list,
- int index);
- static void clear_filter(QDeclarativeListProperty<QDeclarativeNdefFilter> *list);
+ static int count_filters(QQmlListProperty<QDeclarativeNdefFilter> *list);
+ static QDeclarativeNdefFilter *at_filter(QQmlListProperty<QDeclarativeNdefFilter> *list,
+ int index);
+ static void clear_filter(QQmlListProperty<QDeclarativeNdefFilter> *list);
};
#endif // QDECLARATIVENEARFIELD_P_H
diff --git a/src/imports/nfc/qdeclarativenearfieldsocket_p.h b/src/imports/nfc/qdeclarativenearfieldsocket_p.h
index 0e7bcc13..7536123d 100644
--- a/src/imports/nfc/qdeclarativenearfieldsocket_p.h
+++ b/src/imports/nfc/qdeclarativenearfieldsocket_p.h
@@ -43,16 +43,15 @@
#define QDECLARATIVENEARFIELDSOCKET_P_H
#include <QtCore/QObject>
-#include <QtDeclarative/qdeclarative.h>
-#include <QtDeclarative/QDeclarativeParserStatus>
-
-#include <qllcpsocket.h>
+#include <QtQml/qqml.h>
+#include <QtQml/QQmlParserStatus>
+#include <QtNfc/QLlcpSocket>
QTNFC_USE_NAMESPACE
class QDeclarativeNearFieldSocketPrivate;
-class QDeclarativeNearFieldSocket : public QObject, public QDeclarativeParserStatus
+class QDeclarativeNearFieldSocket : public QObject, public QQmlParserStatus
{
Q_OBJECT
@@ -63,7 +62,7 @@ class QDeclarativeNearFieldSocket : public QObject, public QDeclarativeParserSta
Q_PROPERTY(bool listening READ listening WRITE setListening NOTIFY listeningChanged)
Q_PROPERTY(QString stringData READ stringData WRITE sendStringData NOTIFY dataAvailable)
- Q_INTERFACES(QDeclarativeParserStatus)
+ Q_INTERFACES(QQmlParserStatus)
Q_DECLARE_PRIVATE(QDeclarativeNearFieldSocket)
diff --git a/src/nfc/nfc.pro b/src/nfc/nfc.pro
index 58ea1c06..9d74ac04 100644
--- a/src/nfc/nfc.pro
+++ b/src/nfc/nfc.pro
@@ -3,6 +3,11 @@ QT = core
load(qt_module)
+# All classes in this module are in the QtNfc namespace. Define the namespace which moc generated
+# code will be in.
+DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\"
+DEFINES += QT_END_MOC_NAMESPACE=\""}"\"
+
PUBLIC_HEADERS += \
qnearfieldmanager.h \
qnearfieldtarget.h \
@@ -119,7 +124,7 @@ simulator {
}
isEmpty(NFC_BACKEND_AVAILABLE) {
- # unsupported platform stub
+ message("Unsupported NFC platform, will not build a working QtNfc library.")
PRIVATE_HEADERS += \
qllcpsocket_p.h \
diff --git a/src/nfc/qdeclarativendefrecord.cpp b/src/nfc/qdeclarativendefrecord.cpp
index 66e6cbc9..61abd002 100644
--- a/src/nfc/qdeclarativendefrecord.cpp
+++ b/src/nfc/qdeclarativendefrecord.cpp
@@ -271,6 +271,4 @@ void QDeclarativeNdefRecord::setRecord(const QNdefRecord &record)
d->record = record;
}
-#include "moc_qdeclarativendefrecord.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qllcpserver.cpp b/src/nfc/qllcpserver.cpp
index f63f4c6d..17a34e1a 100644
--- a/src/nfc/qllcpserver.cpp
+++ b/src/nfc/qllcpserver.cpp
@@ -198,6 +198,4 @@ QLlcpSocket::SocketError QLlcpServer::serverError() const
return d->serverError();
}
-#include "moc_qllcpserver.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qllcpserver_maemo6_p.cpp b/src/nfc/qllcpserver_maemo6_p.cpp
index fe3dde33..894bd4f6 100644
--- a/src/nfc/qllcpserver_maemo6_p.cpp
+++ b/src/nfc/qllcpserver_maemo6_p.cpp
@@ -198,5 +198,3 @@ void QLlcpServerPrivate::Socket(const QDBusVariant &lsap, int fd, const QVariant
}
QTNFC_END_NAMESPACE
-
-#include "moc_qllcpserver_maemo6_p.cpp"
diff --git a/src/nfc/qllcpsocket.cpp b/src/nfc/qllcpsocket.cpp
index b17d7573..dc4357ae 100644
--- a/src/nfc/qllcpsocket.cpp
+++ b/src/nfc/qllcpsocket.cpp
@@ -400,6 +400,4 @@ qint64 QLlcpSocket::writeData(const char *data, qint64 len)
return d->writeData(data, len);
}
-#include <moc_qllcpsocket.cpp>
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qllcpsocket_maemo6_p.cpp b/src/nfc/qllcpsocket_maemo6_p.cpp
index ef94776e..9a802bc1 100644
--- a/src/nfc/qllcpsocket_maemo6_p.cpp
+++ b/src/nfc/qllcpsocket_maemo6_p.cpp
@@ -637,6 +637,4 @@ void QLlcpSocketPrivate::initializeRequestor()
}
}
-#include "moc_qllcpsocket_maemo6_p.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldmanager.cpp b/src/nfc/qnearfieldmanager.cpp
index 108c2f69..6c6b1dd1 100644
--- a/src/nfc/qnearfieldmanager.cpp
+++ b/src/nfc/qnearfieldmanager.cpp
@@ -440,7 +440,4 @@ QNearFieldManager::TargetAccessModes QNearFieldManager::targetAccessModes() cons
return d->m_requestedModes;
}
-#include "moc_qnearfieldmanager.cpp"
-#include "moc_qnearfieldmanager_p.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldmanager.h b/src/nfc/qnearfieldmanager.h
index 15b87a05..2cf88968 100644
--- a/src/nfc/qnearfieldmanager.h
+++ b/src/nfc/qnearfieldmanager.h
@@ -58,6 +58,7 @@ class QNearFieldManagerPrivate;
class Q_NFC_EXPORT QNearFieldManager : public QObject
{
Q_OBJECT
+
Q_DECLARE_PRIVATE(QNearFieldManager)
public:
diff --git a/src/nfc/qnearfieldmanager_emulator.cpp b/src/nfc/qnearfieldmanager_emulator.cpp
index 0b973679..82c29f82 100644
--- a/src/nfc/qnearfieldmanager_emulator.cpp
+++ b/src/nfc/qnearfieldmanager_emulator.cpp
@@ -47,6 +47,8 @@
#include <QtCore/QDebug>
+QTNFC_BEGIN_NAMESPACE
+
QNearFieldManagerPrivateImpl::QNearFieldManagerPrivateImpl()
{
TagActivator *tagActivator = TagActivator::instance();
@@ -99,4 +101,4 @@ void QNearFieldManagerPrivateImpl::tagDeactivated(TagBase *tag)
targetDeactivated(target);
}
-
+QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldmanager_emulator_p.h b/src/nfc/qnearfieldmanager_emulator_p.h
index e9e335cc..e125f4c9 100644
--- a/src/nfc/qnearfieldmanager_emulator_p.h
+++ b/src/nfc/qnearfieldmanager_emulator_p.h
@@ -49,6 +49,10 @@
#include <QtCore/QObject>
#include <QtCore/QWeakPointer>
+QT_BEGIN_HEADER
+
+QTNFC_BEGIN_NAMESPACE
+
class TagBase;
class QNearFieldManagerPrivateImpl : public QNearFieldManagerPrivateVirtualBase
{
@@ -73,4 +77,8 @@ private:
};
+QTNFC_END_NAMESPACE
+
+QT_END_HEADER
+
#endif // QNEARFIELDMANAGER_EMULATOR_H
diff --git a/src/nfc/qnearfieldmanager_maemo6.cpp b/src/nfc/qnearfieldmanager_maemo6.cpp
index f6c94ccd..42ebb33b 100644
--- a/src/nfc/qnearfieldmanager_maemo6.cpp
+++ b/src/nfc/qnearfieldmanager_maemo6.cpp
@@ -448,6 +448,4 @@ void QNearFieldManagerPrivateImpl::_q_targetLost(const QDBusObjectPath &targetPa
emit targetLost(nearFieldTarget);
}
-#include "moc_qnearfieldmanager_maemo6_p.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldmanager_simulator.cpp b/src/nfc/qnearfieldmanager_simulator.cpp
index 442a3705..18cb6e33 100644
--- a/src/nfc/qnearfieldmanager_simulator.cpp
+++ b/src/nfc/qnearfieldmanager_simulator.cpp
@@ -202,7 +202,6 @@ void QNearFieldManagerPrivateImpl::targetLeavingProximity(const QByteArray &uid)
targetDeactivated(target);
}
-#include "qnearfieldmanager_simulator.moc"
-#include "moc_qnearfieldmanager_simulator_p.cpp"
-
QTNFC_END_NAMESPACE
+
+#include "qnearfieldmanager_simulator.moc"
diff --git a/src/nfc/qnearfieldmanagerimpl_p.cpp b/src/nfc/qnearfieldmanagerimpl_p.cpp
index c4fd68e8..28fe62fe 100644
--- a/src/nfc/qnearfieldmanagerimpl_p.cpp
+++ b/src/nfc/qnearfieldmanagerimpl_p.cpp
@@ -58,6 +58,5 @@ QNearFieldManagerPrivateImpl::QNearFieldManagerPrivateImpl()
QNearFieldManagerPrivateImpl::~QNearFieldManagerPrivateImpl()
{
}
-//#include "moc_qnearfieldmanagerimpl_p.cpp"
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldmanagervirtualbase.cpp b/src/nfc/qnearfieldmanagervirtualbase.cpp
index f343f1c5..ffafa281 100644
--- a/src/nfc/qnearfieldmanagervirtualbase.cpp
+++ b/src/nfc/qnearfieldmanagervirtualbase.cpp
@@ -214,6 +214,4 @@ void QNearFieldManagerPrivateVirtualBase::ndefReceived(const QNdefMessage &messa
}
}
-#include "moc_qnearfieldmanagervirtualbase_p.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtagtype1.cpp b/src/nfc/qnearfieldtagtype1.cpp
index fca7b7d9..28477c90 100644
--- a/src/nfc/qnearfieldtagtype1.cpp
+++ b/src/nfc/qnearfieldtagtype1.cpp
@@ -733,6 +733,4 @@ bool QNearFieldTagType1::handleResponse(const QNearFieldTarget::RequestId &id,
return handled;
}
-#include "moc_qnearfieldtagtype1.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtagtype2.cpp b/src/nfc/qnearfieldtagtype2.cpp
index 8c02d780..1add9b78 100644
--- a/src/nfc/qnearfieldtagtype2.cpp
+++ b/src/nfc/qnearfieldtagtype2.cpp
@@ -346,6 +346,4 @@ void QNearFieldTagType2::timerEvent(QTimerEvent *event)
}
}
-#include "moc_qnearfieldtagtype2.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtagtype3.cpp b/src/nfc/qnearfieldtagtype3.cpp
index 4783dd06..aafd123c 100644
--- a/src/nfc/qnearfieldtagtype3.cpp
+++ b/src/nfc/qnearfieldtagtype3.cpp
@@ -183,6 +183,4 @@ bool QNearFieldTagType3::handleResponse(const QNearFieldTarget::RequestId &id,
return QNearFieldTarget::handleResponse(id, response);
}
-#include "moc_qnearfieldtagtype3.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtagtype4.cpp b/src/nfc/qnearfieldtagtype4.cpp
index f165de1c..8b94e639 100644
--- a/src/nfc/qnearfieldtagtype4.cpp
+++ b/src/nfc/qnearfieldtagtype4.cpp
@@ -159,6 +159,4 @@ bool QNearFieldTagType4::handleResponse(const QNearFieldTarget::RequestId &id,
return QNearFieldTarget::handleResponse(id, response);
}
-#include "moc_qnearfieldtagtype4.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtarget.cpp b/src/nfc/qnearfieldtarget.cpp
index 7ce86974..d519eab3 100644
--- a/src/nfc/qnearfieldtarget.cpp
+++ b/src/nfc/qnearfieldtarget.cpp
@@ -457,6 +457,4 @@ bool QNearFieldTarget::handleResponse(const QNearFieldTarget::RequestId &id,
return true;
}
-#include "moc_qnearfieldtarget.cpp"
-
QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtarget_emulator.cpp b/src/nfc/qnearfieldtarget_emulator.cpp
index 3661ea2a..a4bd888c 100644
--- a/src/nfc/qnearfieldtarget_emulator.cpp
+++ b/src/nfc/qnearfieldtarget_emulator.cpp
@@ -48,13 +48,12 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QDateTime>
-#include <QtCore/QDebug>
+QTNFC_BEGIN_NAMESPACE
static QMutex tagMutex;
static QMap<TagBase *, bool> tagMap;
static TagActivator tagActivator;
-
TagType1::TagType1(TagBase *tag, QObject *parent)
: QNearFieldTagType1(parent), m_tag(tag)
{
@@ -226,13 +225,11 @@ void TagActivator::initialize()
target.endGroup();
if (tagType == QLatin1String("TagType1")) {
- qDebug() << "loading" << targetFilename << "as NfcTagType1";
NfcTagType1 *tag = new NfcTagType1;
tag->load(&target);
tagMap.insert(tag, false);
} else if (tagType == QLatin1String("TagType2")) {
- qDebug() << "loading" << targetFilename << "as NfcTagType2";
NfcTagType2 *tag = new NfcTagType2;
tag->load(&target);
@@ -277,8 +274,10 @@ void TagActivator::timerEvent(QTimerEvent *e)
*m_current = false;
+ TagBase *tag = m_current.key();
+
tagMutex.unlock();
- emit tagDeactivated(m_current.key());
+ emit tagDeactivated(tag);
tagMutex.lock();
}
@@ -289,12 +288,14 @@ void TagActivator::timerEvent(QTimerEvent *e)
if (m_current != tagMap.end()) {
*m_current = true;
- tagMutex.unlock();
+ TagBase *tag = m_current.key();
- emit tagActivated(m_current.key());
+ tagMutex.unlock();
+ emit tagActivated(tag);
tagMutex.lock();
}
tagMutex.unlock();
}
+QTNFC_END_NAMESPACE
diff --git a/src/nfc/qnearfieldtarget_emulator_p.h b/src/nfc/qnearfieldtarget_emulator_p.h
index 42002693..10b42fb7 100644
--- a/src/nfc/qnearfieldtarget_emulator_p.h
+++ b/src/nfc/qnearfieldtarget_emulator_p.h
@@ -48,6 +48,10 @@
#include <QtCore/QMap>
+QT_BEGIN_HEADER
+
+QTNFC_BEGIN_NAMESPACE
+
class TagType1 : public QNearFieldTagType1
{
Q_OBJECT
@@ -111,4 +115,8 @@ private:
int timerId;
};
+QTNFC_END_NAMESPACE
+
+QT_END_HEADER
+
#endif // QNEARFIELDTARGET_EMULATOR_P_H
diff --git a/src/nfc/targetemulator.cpp b/src/nfc/targetemulator.cpp
index e9f3741e..a374f521 100644
--- a/src/nfc/targetemulator.cpp
+++ b/src/nfc/targetemulator.cpp
@@ -49,6 +49,8 @@
// Implementation of qNfcChecksum
#include "checksum_p.h"
+QTNFC_BEGIN_NAMESPACE
+
TagBase::TagBase()
: lastAccess(0)
{
@@ -71,6 +73,10 @@ NfcTagType1::NfcTagType1()
memory[(0x0e << 3) | 0x01] = 0x60;
}
+NfcTagType1::~NfcTagType1()
+{
+}
+
void NfcTagType1::load(QSettings *settings)
{
settings->beginGroup(QLatin1String("TagType1"));
@@ -290,6 +296,10 @@ NfcTagType2::NfcTagType2()
{
}
+NfcTagType2::~NfcTagType2()
+{
+}
+
void NfcTagType2::load(QSettings *settings)
{
settings->beginGroup(QLatin1String("TagType2"));
@@ -380,3 +390,5 @@ QByteArray NfcTagType2::processCommand(const QByteArray &command)
return response;
}
+
+QTNFC_END_NAMESPACE
diff --git a/src/nfc/targetemulator_p.h b/src/nfc/targetemulator_p.h
index 1d6438a8..0ac6121a 100644
--- a/src/nfc/targetemulator_p.h
+++ b/src/nfc/targetemulator_p.h
@@ -44,14 +44,19 @@
#include <QtCore/QtGlobal>
#include <QtCore/QByteArray>
+#include <QtNfc/qnfcglobal.h>
QT_FORWARD_DECLARE_CLASS(QSettings)
+QT_BEGIN_HEADER
+
+QTNFC_BEGIN_NAMESPACE
+
class TagBase
{
public:
TagBase();
- ~TagBase();
+ virtual ~TagBase();
virtual void load(QSettings *settings) = 0;
@@ -104,4 +109,8 @@ private:
bool expectPacket2;
};
+QTNFC_END_NAMESPACE
+
+QT_END_HEADER
+
#endif // TARGETEMULATOR_P_H
diff --git a/src/src.pro b/src/src.pro
index 4f20fe20..7ebb6a01 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,9 +1,10 @@
TEMPLATE = subdirs
CONFIG += ordered
+SUBDIRS = bluetooth imports
-SUBDIRS = bluetooth
-
-#The Qt NFC module is currently not supported
-#SUBDIRS += nfc
-
-SUBDIRS += imports
+# The Qt NFC module is currently not supported. The API is not finalized and may change.
+# The Qt NFC module can be built by passing CONFIG+=nfc to qmake.
+nfc {
+ message("Building unsupported Qt NFC module, API is not finalized and may change.")
+ SUBDIRS += nfc
+}
diff --git a/sync.profile b/sync.profile
index 604a1cf7..c7f64203 100644
--- a/sync.profile
+++ b/sync.profile
@@ -1,6 +1,6 @@
%modules = ( # path to module name map
"QtBluetooth" => "$basedir/src/bluetooth",
-# "QtNfc" => "$basedir/src/nfc",
+ "QtNfc" => "$basedir/src/nfc",
);
%moduleheaders = ( # restrict the module headers to those found in relative path
);
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index dec893bb..e3539b57 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -1,51 +1,32 @@
TEMPLATE = subdirs
SUBDIRS += \
- qbluetoothaddress \
- qbluetoothdevicediscoveryagent \
- qbluetoothdeviceinfo \
- qbluetoothlocaldevice \
- qbluetoothhostinfo \
- qbluetoothservicediscoveryagent \
- qbluetoothserviceinfo \
- qbluetoothsocket \
- qbluetoothtransfermanager \
- qbluetoothtransferrequest \
- qbluetoothuuid \
- ql2capserver \
-# qndefmessage \
-# qndefrecord \
-# qnearfieldmanager \
-# qnearfieldtagtype1 \
-# qnearfieldtagtype2 \
- qrfcommserver \
cmake
-!contains(QT_CONFIG, bluetooth): SUBDIRS -= \
- qbluetoothaddress \
- qbluetoothdevicediscoveryagent \
- qbluetoothdeviceinfo \
- qbluetoothlocaldevice \
- qbluetoothhostinfo \
- qbluetoothservicediscoveryagent \
- qbluetoothserviceinfo \
- qbluetoothsocket \
- qbluetoothtransfermanager \
- qbluetoothtransferrequest \
- qbluetoothuuid \
- ql2capserver \
+!isEmpty(QT.bluetooth.name) {
+ SUBDIRS += \
+ qbluetoothaddress \
+ qbluetoothdevicediscoveryagent \
+ qbluetoothdeviceinfo \
+ qbluetoothlocaldevice \
+ qbluetoothhostinfo \
+ qbluetoothservicediscoveryagent \
+ qbluetoothserviceinfo \
+ qbluetoothsocket \
+ qbluetoothtransfermanager \
+ qbluetoothtransferrequest \
+ qbluetoothuuid \
+ ql2capserver \
+ qrfcommserver
+}
-#!contains(QT_CONFIG, nfc): SUBDIRS -= \
-# qndefmessage \
-# qndefrecord \
-# qnearfieldmanager \
-# qnearfieldtagtype1 \
-# qnearfieldtagtype2 \
-#
-## QTBUG-22015 these do not compile.
-#SUBDIRS -= \
-# qnearfieldmanager \
-# qnearfieldtagtype1 \
-# qnearfieldtagtype2 \
+!isEmpty(QT.nfc.name) {
+ SUBDIRS += \
+ qndefmessage \
+ qndefrecord \
+ qnearfieldmanager \
+ qnearfieldtagtype1 \
+ qnearfieldtagtype2 \
+}
qbluetoothservicediscoveryagent.CONFIG += no_check_target # QTBUG-22017
diff --git a/tests/auto/qnearfieldmanager/qnearfieldmanager.pro b/tests/auto/qnearfieldmanager/qnearfieldmanager.pro
index 4d1d84b0..20772f6c 100644
--- a/tests/auto/qnearfieldmanager/qnearfieldmanager.pro
+++ b/tests/auto/qnearfieldmanager/qnearfieldmanager.pro
@@ -4,5 +4,28 @@ CONFIG += testcase
QT = core nfc-private testlib
+INCLUDEPATH += ../../../src/nfc
+DEPENDPATH += ../../../src/nfc
+
+# This test includes source code from QtNfc library. Define the namespace which moc generated code
+# should be in.
+DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\"
+DEFINES += QT_END_MOC_NAMESPACE=\""}"\"
+
+HEADERS += \
+ qnearfieldmanagervirtualbase_p.h \
+ qnearfieldmanager_emulator_p.h \
+ qnearfieldtarget_emulator_p.h \
+ targetemulator_p.h
+
+SOURCES += \
+ qnearfieldmanagervirtualbase.cpp \
+ qnearfieldmanager_emulator.cpp \
+ qnearfieldtarget_emulator.cpp \
+ targetemulator.cpp
+
DEFINES += SRCDIR=\\\"$$PWD/../nfcdata\\\"
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+
+# This test crashes
+CONFIG += insignificant_test
diff --git a/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp b/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp
index b7acd820..92a4e99a 100644
--- a/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp
+++ b/tests/auto/qnearfieldmanager/tst_qnearfieldmanager.cpp
@@ -292,6 +292,12 @@ void tst_QNearFieldManager::registerNdefMessageHandler_filter()
QVERIFY(target);
}
-QTEST_MAIN(tst_QNearFieldManager);
+QTEST_MAIN(tst_QNearFieldManager)
+
+// Unset the moc namespace which is not required for the following include.
+#undef QT_BEGIN_MOC_NAMESPACE
+#define QT_BEGIN_MOC_NAMESPACE
+#undef QT_END_MOC_NAMESPACE
+#define QT_END_MOC_NAMESPACE
#include "tst_qnearfieldmanager.moc"
diff --git a/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro b/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro
index 63a59333..1b66692f 100644
--- a/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro
+++ b/tests/auto/qnearfieldtagtype1/qnearfieldtagtype1.pro
@@ -4,6 +4,28 @@ CONFIG += testcase
QT = core nfc-private testlib
+INCLUDEPATH += ../../../src/nfc
+DEPENDPATH += ../../../src/nfc
+
+# This test includes source code from QtNfc library. Define the namespace which moc generated code
+# should be in.
+DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\"
+DEFINES += QT_END_MOC_NAMESPACE=\""}"\"
+
+HEADERS += \
+ qnearfieldmanagervirtualbase_p.h \
+ qnearfieldmanager_emulator_p.h \
+ qnearfieldtarget_emulator_p.h \
+ targetemulator_p.h
+
+SOURCES += \
+ qnearfieldmanagervirtualbase.cpp \
+ qnearfieldmanager_emulator.cpp \
+ qnearfieldtarget_emulator.cpp \
+ targetemulator.cpp
DEFINES += SRCDIR=\\\"$$PWD/../nfcdata\\\"
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+
+# This test crashes
+CONFIG += insignificant_test
diff --git a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
index 28839f19..36a8accf 100644
--- a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
+++ b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
@@ -484,6 +484,12 @@ void tst_QNearFieldTagType1::ndefMessages()
}
}
-QTEST_MAIN(tst_QNearFieldTagType1);
+QTEST_MAIN(tst_QNearFieldTagType1)
+
+// Unset the moc namespace which is not required for the following include.
+#undef QT_BEGIN_MOC_NAMESPACE
+#define QT_BEGIN_MOC_NAMESPACE
+#undef QT_END_MOC_NAMESPACE
+#define QT_END_MOC_NAMESPACE
#include "tst_qnearfieldtagtype1.moc"
diff --git a/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro b/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro
index 77332b8e..0801a319 100644
--- a/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro
+++ b/tests/auto/qnearfieldtagtype2/qnearfieldtagtype2.pro
@@ -4,5 +4,28 @@ CONFIG += testcase
QT = core nfc-private testlib
+INCLUDEPATH += ../../../src/nfc
+DEPENDPATH += ../../../src/nfc
+
+# This test includes source code from QtNfc library. Define the namespace which moc generated code
+# should be in.
+DEFINES += QT_BEGIN_MOC_NAMESPACE=\""namespace QtNfc {"\"
+DEFINES += QT_END_MOC_NAMESPACE=\""}"\"
+
+HEADERS += \
+ qnearfieldmanagervirtualbase_p.h \
+ qnearfieldtarget_emulator_p.h \
+ qnearfieldmanager_emulator_p.h \
+ targetemulator_p.h
+
+SOURCES += \
+ qnearfieldmanagervirtualbase.cpp \
+ qnearfieldtarget_emulator.cpp \
+ qnearfieldmanager_emulator.cpp \
+ targetemulator.cpp
+
DEFINES += SRCDIR=\\\"$$PWD\\\"
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+
+# This test crashes
+CONFIG += insignificant_test
diff --git a/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp b/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp
index 70fcf9e6..c18d0291 100644
--- a/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp
+++ b/tests/auto/qnearfieldtagtype2/tst_qnearfieldtagtype2.cpp
@@ -351,6 +351,12 @@ void tst_QNearFieldTagType2::ndefMessages()
}
}
-QTEST_MAIN(tst_QNearFieldTagType2);
+QTEST_MAIN(tst_QNearFieldTagType2)
+
+// Unset the moc namespace which is not required for the following include.
+#undef QT_BEGIN_MOC_NAMESPACE
+#define QT_BEGIN_MOC_NAMESPACE
+#undef QT_END_MOC_NAMESPACE
+#define QT_END_MOC_NAMESPACE
#include "tst_qnearfieldtagtype2.moc"
diff --git a/tests/tests.pro b/tests/tests.pro
index f00a536e..6fa5383b 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -1,9 +1,8 @@
TEMPLATE = subdirs
SUBDIRS += auto
-# NFC disabled
-#SUBDIRS += nfctestserver
-
linux*:!linux-armcc:contains(bluez_enabled, yes):contains(QT_CONFIG, dbus) {
SUBDIRS += btclient
}
+
+!isEmpty(QT.nfc.name):SUBDIRS += nfctestserver