Fix Windows ARM64 builds on x64 on Qt 6.10.1+

This commit is contained in:
Cameron Gutman 2026-01-31 17:11:56 -06:00
commit d878447413

View file

@ -33,12 +33,16 @@ if /I "%BUILD_CONFIG%"=="debug" (
) )
) )
rem Locate qmake and determine if we're using qmake.exe or qmake.bat rem Locate qmake and determine if we're using qmake.exe or (host-)qmake.bat
rem qmake.bat is an ARM64 forwarder to the x64 version of qmake.exe rem (host-)qmake.bat is an ARM64 forwarder to the x64 version of qmake.exe
where qmake.bat where qmake.bat
if !ERRORLEVEL! EQU 0 ( if !ERRORLEVEL! EQU 0 (
set QMAKE_CMD=call qmake.bat set QMAKE_CMD=call qmake.bat
) else ( ) else (
where host-qmake.bat
if !ERRORLEVEL! EQU 0 (
set QMAKE_CMD=call host-qmake.bat
) else (
where qmake.exe where qmake.exe
if !ERRORLEVEL! EQU 0 ( if !ERRORLEVEL! EQU 0 (
set QMAKE_CMD=qmake.exe set QMAKE_CMD=qmake.exe
@ -46,6 +50,7 @@ if !ERRORLEVEL! EQU 0 (
echo Unable to find QMake. Did you add Qt bins to your PATH? echo Unable to find QMake. Did you add Qt bins to your PATH?
goto Error goto Error
) )
)
) )
rem Find Qt path to determine our architecture rem Find Qt path to determine our architecture
@ -64,6 +69,10 @@ if not x%QT_PATH:_arm64=%==x%QT_PATH% (
set HOSTBIN_PATH=%QT_PATH:_arm64=_64% set HOSTBIN_PATH=%QT_PATH:_arm64=_64%
echo HOSTBIN_PATH=!HOSTBIN_PATH! echo HOSTBIN_PATH=!HOSTBIN_PATH!
if exist %QT_PATH%\host-qtpaths.bat (
echo Using windeployqt.exe from HOSTBIN_PATH
set WINDEPLOYQT_CMD=!HOSTBIN_PATH!\windeployqt.exe --qtpaths %QT_PATH%\host-qtpaths.bat
) else (
if exist %QT_PATH%\windeployqt.exe ( if exist %QT_PATH%\windeployqt.exe (
echo Using windeployqt.exe from QT_PATH echo Using windeployqt.exe from QT_PATH
set WINDEPLOYQT_CMD=windeployqt.exe set WINDEPLOYQT_CMD=windeployqt.exe
@ -71,6 +80,7 @@ if not x%QT_PATH:_arm64=%==x%QT_PATH% (
echo Using windeployqt.exe from HOSTBIN_PATH echo Using windeployqt.exe from HOSTBIN_PATH
set WINDEPLOYQT_CMD=!HOSTBIN_PATH!\windeployqt.exe --qtpaths %QT_PATH%\qtpaths.bat set WINDEPLOYQT_CMD=!HOSTBIN_PATH!\windeployqt.exe --qtpaths %QT_PATH%\qtpaths.bat
) )
)
) else ( ) else (
if not x%QT_PATH:_64=%==x%QT_PATH% ( if not x%QT_PATH:_64=%==x%QT_PATH% (
set ARCH=x64 set ARCH=x64