From 2a29426e3915ecc7fa5b4cbb06c7565c40ca2ec6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 29 Oct 2020 11:34:32 +0100 Subject: CMake: Fix argument passing for configure.bat / qt-configure-module.bat Passing arguments with equal signs was broken for configure.bat and qt-configure-module.bat. An argument FOO=BAR was split at = and written as FOO BAR to config.opt, breaking every attempt of assigning CMake variables. We must not iterate over %* in batch files to avoid splitting arguments at equal signs. Instead, pass %* unmodified to a CMake script that writes config.opt. Fixes: QTBUG-88019 Change-Id: I7c743a206961d1ed168f2313f864905f6b345b49 Reviewed-by: Alexandru Croitor --- bin/qt-configure-module.bat.in | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'bin') diff --git a/bin/qt-configure-module.bat.in b/bin/qt-configure-module.bat.in index a4858d412c..9d9243f5b8 100644 --- a/bin/qt-configure-module.bat.in +++ b/bin/qt-configure-module.bat.in @@ -17,18 +17,9 @@ if not exist "%module_root%\CMakeLists.txt" ( exit /b 1 ) -echo. > "config.opt" -set first_iteration=indeed -for %%a in (%*) do ( - if defined first_iteration ( - :: Drop the first argument, which is the module root. - set first_iteration= - ) else ( - echo %%a >> "config.opt" - ) -) - set cmake_scripts_dir=%script_dir_path%\@__relative_path_to_cmake_scripts_dir@ +call "%script_dir_path%"\qt-cmake.bat -DSKIP_ARGS=1 -DOUT_FILE=config.opt ^ + -P "%cmake_scripts_dir%\QtWriteArgsFile.cmake" %* call "%script_dir_path%"\qt-cmake-private.bat -DOPTFILE=config.opt -DMODULE_ROOT="%module_root%" ^ -DCMAKE_COMMAND="%script_dir_path%\qt-cmake-private.bat" ^ -P "%cmake_scripts_dir%\QtProcessConfigureArgs.cmake" -- cgit v1.2.3