Hi, when I compile a qt plugin in release mode (and therefore link against release qt lib) I've the problem that cmake does not set -DQT_NO_DEBUG . Because of this Qt assumes we're compiling this plugin in debug mode:
qconfig.h:
==========
#if !defined(QT_NO_DEBUG) && !defined(QT_DEBUG)
# define QT_DEBUG
#endif
which leads to the wrong Q_PLUGIN_VERIFICATION_DATA:
qplugin.h:
==========
# ifdef QT_NO_DEBUG
# define QPLUGIN_DEBUG_STR "false"
# else
# define QPLUGIN_DEBUG_STR "true"
# endif
# define Q_PLUGIN_VERIFICATION_DATA \
static const char *qt_plugin_verification_data = \
"pattern=""QT_PLUGIN_VERIFICATION_DATA""\n" \
"version="QT_VERSION_STR"\n" \
"debug="QPLUGIN_DEBUG_STR"\n" \
"buildkey="QT_BUILD_KEY"\0";
--> an app does not load this plugin because the verification data does
not match.
I'm posting this to cmake and kde-buildsystem list because I don't know
who to blame here - qt because it's not recognizing the NDEBUG flag
(which seems to be a widely used flag) or cmake because it's not adding
QT_NO_DEBUG to the compiler flags.
Christian
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
