configure: Fix -redo when configure line contained equal sign(s)

If the original configure arguments contained equal sign(s) like in
    configure ... -- -DQT_BUILD_SUBMODULES=qtbase;...

The following error message was printed:
    =qtbase was unexpected at this time.

The reason is that the conditional
    if "%rargs%" == ""
would expand to something like
    if ""-DQT_BUILD_SUBMODULES=qtsvg"" == ""
which is invalid, because the equal sign is used outside of a string
literal.

Use delayed expansion in the conditional to fix this.

Pick-to: 6.2 6.3
Change-Id: I8c40d799db2c5aae8cba190ed31804c71a605935
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Björn Schäpers 2022-02-10 00:47:16 +01:00 committed by Jörg Bornemann
parent 3ec76f82ba
commit c6808d4296

View File

@ -103,7 +103,7 @@ goto doneargs
cd "%TOPQTDIR%"
rem Write config.opt if we're not currently -redo'ing
if "%rargs%" == "" (
if "!rargs!" == "" (
echo %*>config.opt.in
cmake -DIN_FILE=config.opt.in -DOUT_FILE=config.opt -DIGNORE_ARGS=-top-level -P "%QTSRC%\cmake\QtWriteArgsFile.cmake"
)