The config.redo script can be executed to reconfigure a pre-existing qt build dir with the configure options that were last passed to the build. It just calls the original configure script with the -redo option. It's nicer than calling configure + -redo manually because you don't need to write out the full source path for configure. In qt 5 times this script was called config.status. On windows the script is called config.redo.bat. Rename the config.redo file that QtWriteArgsFile.cmake writes to to config.redo.last, so it doesn't conflict with the name of new config.redo script. Amends 5c40cb0f1a8fad03edb3ef0f97df15e9dd643bdf Change-Id: Id47c56a24561410aec6fbaa79b13fc8a78d12ed0 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit 8ffb6ce64cb0183bf6805497b398463549c1ed8d) Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> (cherry picked from commit f3ce3ca241be8e413e274a3f1977ee1cfb780c44) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
103 lines
2.9 KiB
Batchfile
103 lines
2.9 KiB
Batchfile
:: Copyright (C) 2016 The Qt Company Ltd.
|
|
:: Copyright (C) 2016 Intel Corporation.
|
|
:: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
@echo off
|
|
setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
|
|
set ARGS=%*
|
|
set QTSRC=%~dp0
|
|
set QTSRC=%QTSRC:~0,-1%
|
|
set QTDIR=%CD%
|
|
|
|
rem Parse command line
|
|
|
|
set TOPLEVEL=false
|
|
set TOPQTSRC=%QTSRC%
|
|
set TOPQTDIR=%QTDIR%
|
|
if /i not "%~1" == "-top-level" goto notoplevel
|
|
set ARGS=%ARGS:~10%
|
|
set TOPLEVEL=true
|
|
for %%P in ("%TOPQTSRC%") do set TOPQTSRC=%%~dpP
|
|
set TOPQTSRC=%TOPQTSRC:~0,-1%
|
|
for %%P in ("%QTDIR%") do set TOPQTDIR=%%~dpP
|
|
set TOPQTDIR=%TOPQTDIR:~0,-1%
|
|
goto wastoplevel
|
|
:notoplevel
|
|
if not exist ..\.qmake.super goto wastoplevel
|
|
echo ERROR: You cannot configure qtbase separately within a top-level build. >&2
|
|
exit /b 1
|
|
:wastoplevel
|
|
|
|
call :doargs %ARGS%
|
|
if errorlevel 1 exit /b
|
|
goto doneargs
|
|
|
|
:doargs
|
|
if "%~1" == "" exit /b
|
|
|
|
if "%~1" == "/?" goto help
|
|
if "%~1" == "-?" goto help
|
|
if /i "%~1" == "/h" goto help
|
|
if /i "%~1" == "-h" goto help
|
|
if /i "%~1" == "/help" goto help
|
|
if /i "%~1" == "-help" goto help
|
|
if /i "%~1" == "--help" goto help
|
|
|
|
if /i "%~1" == "-redo" goto redo
|
|
if /i "%~1" == "--redo" goto redo
|
|
|
|
:nextarg
|
|
shift
|
|
goto doargs
|
|
|
|
:help
|
|
type %QTSRC%\config_help.txt
|
|
if %TOPLEVEL% == false exit /b 1
|
|
for /d %%p in ("%TOPQTSRC%"\qt*) do (
|
|
if not "%%p" == "%QTSRC%" (
|
|
if exist "%%p\config_help.txt" (
|
|
echo.
|
|
type "%%p\config_help.txt"
|
|
)
|
|
)
|
|
)
|
|
exit /b 1
|
|
|
|
: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
|
|
|
|
cd "%TOPQTDIR%"
|
|
|
|
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 (
|
|
echo.%*>"%OPT_TMP_FILE_PATH%"
|
|
|
|
cmake -DIN_FILE="%OPT_TMP_FILE_PATH%" -DOUT_FILE="%OPT_FILE_PATH%" -DIGNORE_ARGS=-top-level -P "%QTSRC%\cmake\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%"
|
|
|
|
cmake -DIN_FILE="%OPT_TMP_FILE_PATH%" -DREDO_FILE="%REDO_TMP_FILE_PATH%" -DOUT_FILE="%REDO_FILE_PATH%" -DIGNORE_ARGS="-top-level;-redo;--redo" -P "%QTSRC%\cmake\QtWriteArgsFile.cmake"
|
|
|
|
set OPT_FILE_PATH=%REDO_FILE_PATH%
|
|
set FRESH_REQUESTED_ARG=-DFRESH_REQUESTED=TRUE
|
|
)
|
|
|
|
rem Launch CMake-based configure
|
|
set TOP_LEVEL_ARG=
|
|
if %TOPLEVEL% == true set TOP_LEVEL_ARG=-DTOP_LEVEL=TRUE
|
|
cmake -DOPTFILE="%OPT_FILE_PATH%" %TOP_LEVEL_ARG% %FRESH_REQUESTED_ARG% -P "%QTSRC%\cmake\QtProcessConfigureArgs.cmake"
|