qxmpp
qxmpp copied to clipboard
QXmppOmemo: Fix compilation on MSVC
Windows headers define a number of macros which conflict with normal names of functions and variables that we want to use. Undefining them fixes it.
This pull request makes it not yet fully work, there is still a linker error to fix.
Creating library src\omemo\QXmppOmemo.lib and object src\omemo\QXmppOmemo.exp
mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClientExtension::staticMetaObject" (?staticMetaObject@QXmppClientExtension@@2UQMetaObject@@B)
OmemoCryptoProvider.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClientExtension::staticMetaObject" (?staticMetaObject@QXmppClientExtension@@2UQMetaObject@@B)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClientExtension::staticMetaObject" (?staticMetaObject@QXmppClientExtension@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClientExtension::staticMetaObject" (?staticMetaObject@QXmppClientExtension@@2UQMetaObject@@B)
mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLogger::staticMetaObject" (?staticMetaObject@QXmppLogger@@2UQMetaObject@@B)
OmemoCryptoProvider.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLogger::staticMetaObject" (?staticMetaObject@QXmppLogger@@2UQMetaObject@@B)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLogger::staticMetaObject" (?staticMetaObject@QXmppLogger@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLogger::staticMetaObject" (?staticMetaObject@QXmppLogger@@2UQMetaObject@@B)
mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLoggable::staticMetaObject" (?staticMetaObject@QXmppLoggable@@2UQMetaObject@@B)
OmemoCryptoProvider.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLoggable::staticMetaObject" (?staticMetaObject@QXmppLoggable@@2UQMetaObject@@B)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLoggable::staticMetaObject" (?staticMetaObject@QXmppLoggable@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppLoggable::staticMetaObject" (?staticMetaObject@QXmppLoggable@@2UQMetaObject@@B)
mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClient::staticMetaObject" (?staticMetaObject@QXmppClient@@2UQMetaObject@@B)
OmemoCryptoProvider.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClient::staticMetaObject" (?staticMetaObject@QXmppClient@@2UQMetaObject@@B)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClient::staticMetaObject" (?staticMetaObject@QXmppClient@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppClient::staticMetaObject" (?staticMetaObject@QXmppClient@@2UQMetaObject@@B)
mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppPubSubManager::staticMetaObject" (?staticMetaObject@QXmppPubSubManager@@2UQMetaObject@@B)
OmemoCryptoProvider.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppPubSubManager::staticMetaObject" (?staticMetaObject@QXmppPubSubManager@@2UQMetaObject@@B)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppPubSubManager::staticMetaObject" (?staticMetaObject@QXmppPubSubManager@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppPubSubManager::staticMetaObject" (?staticMetaObject@QXmppPubSubManager@@2UQMetaObject@@B)
QXmppOmemoData.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2" (?ns_omemo_2@@3PEBDEB)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2" (?ns_omemo_2@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2" (?ns_omemo_2@@3PEBDEB)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2_devices" (?ns_omemo_2_devices@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2_devices" (?ns_omemo_2_devices@@3PEBDEB)
QXmppOmemoManager.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppTrustManager::staticMetaObject" (?staticMetaObject@QXmppTrustManager@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QXmppTrustManager::staticMetaObject" (?staticMetaObject@QXmppTrustManager@@2UQMetaObject@@B)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_client" (?ns_client@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_auto_create" (?ns_pubsub_auto_create@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_config_node" (?ns_pubsub_config_node@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_config_node_max" (?ns_pubsub_config_node_max@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_create_and_configure" (?ns_pubsub_create_and_configure@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_create_nodes" (?ns_pubsub_create_nodes@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_publish" (?ns_pubsub_publish@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_pubsub_publish_options" (?ns_pubsub_publish_options@@3PEBDEB)
QXmppOmemoManager_p.cpp.obj : error LNK2001: unresolved external symbol "char const * const ns_omemo_2_bundles" (?ns_omemo_2_bundles@@3PEBDEB)
src\omemo\QXmppOmemo.dll : fatal error LNK1120: 17 unresolved externals
PR check list:
- [x] Document your code
- [x] Add
\since QXmpp 1.X
,QXMPP_EXPORT
- [x] Fix doxygen warnings (see log when building with
-DBUILD_DOCUMENTATION=ON
) - [x] Update
doc/doap.xml
- [x] Add unit tests
- [x] Format the code: Run
clang-format -i src/<edited-file(s)> tests/<edited-file(s)>
Codecov Report
Base: 68.36% // Head: 68.36% // No change to project coverage :thumbsup:
Coverage data is based on head (
adebb83
) compared to base (befab2f
). Patch has no changes to coverable lines.
Additional details and impacted files
@@ Coverage Diff @@
## master #466 +/- ##
=======================================
Coverage 68.36% 68.36%
=======================================
Files 298 298
Lines 25869 25869
=======================================
Hits 17685 17685
Misses 8184 8184
Impacted Files | Coverage Δ | |
---|---|---|
src/client/QXmppFileEncryption.cpp | 67.44% <ø> (ø) |
|
src/omemo/QXmppOmemoManager.cpp | 16.22% <ø> (ø) |
|
src/omemo/QXmppOmemoManager_p.cpp | 5.00% <ø> (ø) |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
replaced by #548 and #550