[Interest] Suppressing Q_ASSERT on release builds
Thiago Macieira
thiago.macieira at intel.com
Tue Jan 10 16:35:46 CET 2017
Em terça-feira, 10 de janeiro de 2017, às 15:23:32 PST, Jani Tykka escreveu:
> It seems that QT_NO_DEBUG doesn't get defined when 3rd party libraries
> are built. Which means that if any 3rd party component includes
> qglobal.h will then end up defining Q_ASSERT in a way which is not
> desired for release builds.
Are you talking about 3rdparty components that are used inside Qt? Which one
is including qglobal.h?
> If I explicitly define precompiler macro during "configure" then that
> will be seen by 3rd party components.
>
> I think this is problem in Qt build system. QT_NO_DEBUG should end up
> to all components being build. Any thoughts, ideas, experience on this
> area? How to get this fixed? Of course I can define QT_NO_DEBUG in
> configure, but then in case when I want to build with
> --debug-and-release I'd need to make to separate builds to allow
> assertions on with debug builds.
QT_NO_DEBUG is defined if you compile in release mode. It's right there in
qt.prf:
CONFIG(release, debug|release):DEFINES += QT_NO_DEBUG
The macro wouldn't get defined if the .pro file does CONFIG -= qt. Can you point
to which one(s) those are?
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Interest
mailing list