2020-08-31 10:38:53 +02:00
|
|
|
@echo off
|
|
|
|
setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
|
2024-07-26 16:44:40 +02:00
|
|
|
set ARGS=%*
|
2020-08-31 10:38:53 +02:00
|
|
|
set script_dir_path=%~dp0
|
|
|
|
set script_dir_path=%script_dir_path:~0,-1%
|
|
|
|
|
|
|
|
if "%1" == "" (
|
|
|
|
call :print_usage
|
|
|
|
exit /b 1
|
|
|
|
)
|
|
|
|
|
|
|
|
set module_root=%1
|
2020-10-21 10:57:49 +02:00
|
|
|
set module_root=%module_root:\=/%
|
2020-08-31 10:38:53 +02:00
|
|
|
shift
|
|
|
|
if not exist "%module_root%\CMakeLists.txt" (
|
|
|
|
echo Error: %module_root% is not a valid Qt module source directory. >&2
|
|
|
|
call :print_usage
|
|
|
|
exit /b 1
|
|
|
|
)
|
|
|
|
|
2020-10-29 10:22:03 +01:00
|
|
|
set cmake_scripts_dir=%script_dir_path%\@__relative_path_to_cmake_scripts_dir@
|
2024-07-26 16:44:40 +02:00
|
|
|
set TOPQTDIR=%CD%
|
|
|
|
|
|
|
|
call :doargs %ARGS%
|
|
|
|
if errorlevel 1 exit /b
|
|
|
|
goto doneargs
|
|
|
|
|
|
|
|
:doargs
|
|
|
|
if "%~1" == "" exit /b
|
|
|
|
|
|
|
|
if /i "%~1" == "-redo" goto redo
|
|
|
|
if /i "%~1" == "--redo" goto redo
|
|
|
|
|
|
|
|
:nextarg
|
|
|
|
shift
|
|
|
|
goto doargs
|
|
|
|
|
|
|
|
:redo
|
|
|
|
if not exist "%TOPQTDIR%\config.opt" goto redoerr
|
|
|
|
echo %ARGS% > %TOPQTDIR%\config.redo.in
|
|
|
|
set redoing=""
|
|
|
|
goto nextarg
|
|
|
|
:redoerr
|
|
|
|
echo No config.opt present - cannot redo configuration. >&2
|
|
|
|
exit /b 1
|
|
|
|
|
|
|
|
:doneargs
|
|
|
|
|
|
|
|
rem Write config.opt if we're not currently -redo'ing
|
|
|
|
set OPT_FILE_PATH=%TOPQTDIR%\config.opt
|
|
|
|
set OPT_TMP_FILE_PATH=%TOPQTDIR%\config.opt.in
|
|
|
|
set REDO_FILE_PATH=%TOPQTDIR%\config.redo.last
|
|
|
|
set REDO_TMP_FILE_PATH=%TOPQTDIR%\config.redo.in
|
|
|
|
set FRESH_REQUESTED_ARG=
|
|
|
|
if not defined redoing (
|
|
|
|
rem "The '.' in 'echo.%*' ensures we don't print "echo is off" when no arguments are passed"
|
|
|
|
rem "https://devblogs.microsoft.com/oldnewthing/20170802-00/?p=96735"
|
|
|
|
rem "The space before the '>' makes sure that when we have a digit at the end of the args, we"
|
|
|
|
rem "don't accidentally concatenate it with the '>' resulting in '0>' or '2>' which redirects"
|
|
|
|
rem "into the file from a stream different than stdout, leading to broken or empty content."
|
|
|
|
echo.%* >"%OPT_TMP_FILE_PATH%"
|
|
|
|
|
|
|
|
rem "The SKIP_ARGS option makes sure not to write the repo path into the config.opt file"
|
|
|
|
call "%script_dir_path%\qt-cmake-private.bat" -DSKIP_ARGS=1 -DIN_FILE="%OPT_TMP_FILE_PATH%" ^
|
|
|
|
-DOUT_FILE="%OPT_FILE_PATH%" -P "%cmake_scripts_dir%\QtWriteArgsFile.cmake"
|
|
|
|
) else (
|
|
|
|
echo. 2> "%OPT_TMP_FILE_PATH%"
|
|
|
|
for /F "usebackq tokens=*" %%A in ("%OPT_FILE_PATH%") do echo "%%A" >> "%OPT_TMP_FILE_PATH%"
|
|
|
|
|
|
|
|
rem "The SKIP_REDO_FILE_ARGS option makes sure to remove the repo path read from the"
|
|
|
|
rem "config.redo.in file"
|
|
|
|
call "%script_dir_path%\qt-cmake-private.bat" -DSKIP_REDO_FILE_ARGS=1 ^
|
|
|
|
-DIN_FILE="%OPT_TMP_FILE_PATH%" -DREDO_FILE="%REDO_TMP_FILE_PATH%" ^
|
|
|
|
-DOUT_FILE="%REDO_FILE_PATH%" -DIGNORE_ARGS="-redo;--redo" ^
|
|
|
|
-P "%cmake_scripts_dir%\QtWriteArgsFile.cmake"
|
|
|
|
|
|
|
|
set OPT_FILE_PATH=%REDO_FILE_PATH%
|
|
|
|
set FRESH_REQUESTED_ARG=-DFRESH_REQUESTED=TRUE
|
|
|
|
)
|
|
|
|
|
|
|
|
rem Launch CMake-based configure
|
|
|
|
|
|
|
|
call "%script_dir_path%\qt-cmake-private.bat" -DOPTFILE="%OPT_FILE_PATH%" %FRESH_REQUESTED_ARG% ^
|
|
|
|
-DMODULE_ROOT="%module_root%" ^
|
2020-08-31 10:38:53 +02:00
|
|
|
-DCMAKE_COMMAND="%script_dir_path%\qt-cmake-private.bat" ^
|
2020-10-29 10:22:03 +01:00
|
|
|
-P "%cmake_scripts_dir%\QtProcessConfigureArgs.cmake"
|
2020-08-31 10:38:53 +02:00
|
|
|
goto :eof
|
|
|
|
|
|
|
|
:print_usage
|
|
|
|
echo Usage: qt-configure-module ^<module-source-dir^> [options]
|
2021-08-20 13:01:00 +02:00
|
|
|
echo.
|
|
|
|
echo To display the available options for a Qt module, run
|
|
|
|
echo qt-configure-module ^<module-source-dir^> -help
|
2020-08-31 10:38:53 +02:00
|
|
|
goto :eof
|