CMake: Apply configuration changes to fresh build directories

Fixes opening a new project without existing build folder, changing
some configuration values, and pressing apply or choosing Run CMake.

extraCMakeArguments contains the arguments needed to apply any changes
done in e.g. the CMake configuration list in projects mode.
When pressing Apply, the build directory gets created, and CMake run
with REPARSE_FORCE_INITIAL_CONFIGURATION. But we may not remove
REPARSE_FORCE_EXTRA_CONFIGURATION which might even just have been added
a few lines above after asking the user via mustApplyExtraArguments().

Amends af4e74a972

Task-number: QTCREATORBUG-24936
Change-Id: I5e5547611262490ebdebb30dc1bfc690f1cdedde
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Eike Ziller
2020-12-02 17:55:30 +01:00
parent 7aa96780ed
commit eeea1e6c32

View File

@@ -283,10 +283,6 @@ void CMakeBuildSystem::triggerParsing()
reparseParameters |= REPARSE_FORCE_CMAKE_RUN | REPARSE_FORCE_EXTRA_CONFIGURATION; reparseParameters |= REPARSE_FORCE_CMAKE_RUN | REPARSE_FORCE_EXTRA_CONFIGURATION;
} }
// Do not add extra args when doing initial configuration
if (0 != (reparseParameters & REPARSE_FORCE_INITIAL_CONFIGURATION))
reparseParameters = reparseParameters ^ REPARSE_FORCE_EXTRA_CONFIGURATION;
qCDebug(cmakeBuildSystemLog) << "Asking reader to parse"; qCDebug(cmakeBuildSystemLog) << "Asking reader to parse";
m_reader.parse(reparseParameters & REPARSE_FORCE_CMAKE_RUN, m_reader.parse(reparseParameters & REPARSE_FORCE_CMAKE_RUN,
reparseParameters & REPARSE_FORCE_INITIAL_CONFIGURATION, reparseParameters & REPARSE_FORCE_INITIAL_CONFIGURATION,