From 474a5e2f3fe7d5fdcb930b0b6da896cd4d9c209c Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 22 Jan 2020 12:38:53 +0100 Subject: [PATCH] Fix handling of the DEFINES_DEBUG/DEFINES_RELEASE variables Modifications of the CONFIG variable in the project file wasn't taken into account in the handling of DEFINES_DEBUG and DEFINES_RELEASE, because it was happening before the evaluation of the project file. Moved the handling code into default_post.prf where the other *_DEBUG and *_RELEASE variables are handled. In practice that means: to avoid the addition of the NDEBUG define one has to remove NDEBUG from DEFINES_RELEASE. This amends commit 1456b809. [ChangeLog][qmake] To remove the NDEBUG define that is added by default in MSVC mkspecs, write DEFINES_RELEASE -= NDEBUG in your .pro file. Fixes: QTBUG-81569 Change-Id: I2ea5628653275a4e48ad002977d34969c0663815 Reviewed-by: Alexandru Croitor --- mkspecs/features/default_post.prf | 2 ++ mkspecs/features/default_pre.prf | 6 ------ qmake/doc/src/qmake-manual.qdoc | 7 +++++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 0e41b825ec..1d79f5c958 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -64,11 +64,13 @@ debug { QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG QMAKE_LFLAGS += $$QMAKE_LFLAGS_DEBUG QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_DEBUG + DEFINES += $$DEFINES_DEBUG } else { QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE QMAKE_LFLAGS += $$QMAKE_LFLAGS_RELEASE QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE + DEFINES += $$DEFINES_RELEASE } stack_protector_strong { diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index b2629d04c0..1c24bf071a 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -26,10 +26,4 @@ CONFIG = \ unset(today) } -CONFIG(debug, debug|release) { - DEFINES += $$DEFINES_DEBUG -} else { - DEFINES += $$DEFINES_RELEASE -} - load(toolchain) diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index cd8129a539..3a1d79cb79 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -1168,7 +1168,7 @@ \section1 DEFINES_DEBUG Specifies preprocessor defines for the debug configuration. The values of - this variable get added to \l{DEFINES} before the project is loaded. This + this variable get added to \l{DEFINES} after the project is loaded. This variable is typically set in \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. @@ -1178,10 +1178,13 @@ \section1 DEFINES_RELEASE Specifies preprocessor defines for the release configuration. The values of - this variable get added to \l{DEFINES} before the project is loaded. This + this variable get added to \l{DEFINES} after the project is loaded. This variable is typically set in \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + \note For MSVC mkspecs, this variable contains the value \c NDEBUG by + default. + This variable was introduced in Qt 5.13.2. \target DEF_FILE