mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
Additional plug-in host to try and fix arm64 build
This commit is contained in:
+93
-43
@@ -749,70 +749,120 @@ IF /I "%VS_TOOLSET%"=="v142" set QT6_MSVC_YEAR=2019
|
||||
IF /I "%VS_TOOLSET%"=="v143" set QT6_MSVC_YEAR=2022
|
||||
IF /I "%VS_TOOLSET%"=="v145" set QT6_MSVC_YEAR=2026
|
||||
|
||||
set QT6_ARCH=
|
||||
set QT6_INSTALL_SUFFIX=
|
||||
IF /I "%TARGET_ARCH%"=="x64" (
|
||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_64
|
||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_64
|
||||
)
|
||||
IF /I "%TARGET_ARCH%"=="arm64" (
|
||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_arm64_cross_compiled
|
||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_arm64
|
||||
)
|
||||
set QT6_ARCH=
|
||||
set QT6_INSTALL_SUFFIX=
|
||||
set QT6_HOST_ARCH=
|
||||
set QT6_HOST_INSTALL_SUFFIX=
|
||||
IF /I "%TARGET_ARCH%"=="x64" (
|
||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_64
|
||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_64
|
||||
)
|
||||
IF /I "%TARGET_ARCH%"=="arm64" (
|
||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_arm64_cross_compiled
|
||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_arm64
|
||||
REM Qt publishes Windows ARM64 packages as cross-compiled Qt. Even on the
|
||||
REM windows-11-arm runner, Qt CMake requires host tools such as moc/rcc.
|
||||
REM Use the x64 host tools; Windows 11 on Arm runs them through x64
|
||||
REM emulation while cl.exe still builds ARM64 binaries against target Qt.
|
||||
set QT6_HOST_ARCH=win64_msvc%QT6_MSVC_YEAR%_64
|
||||
set QT6_HOST_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_64
|
||||
)
|
||||
|
||||
IF "%QT6_ARCH%"=="" (
|
||||
call cecho.cmd 0 12 "Automatic Qt6 installation is only supported for x64 and arm64 builds."
|
||||
GOTO :Error
|
||||
)
|
||||
|
||||
set DEPENDENCY_INSTALL_NAME=qt6-%QT6_VERSION%-%QT6_INSTALL_SUFFIX%
|
||||
set QT6_AQT_OUTPUT_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
|
||||
set QT6_INSTALL_DIR=%QT6_AQT_OUTPUT_DIR%\%QT6_VERSION%\%QT6_INSTALL_SUFFIX%
|
||||
set QT_DIR=%QT6_INSTALL_DIR%
|
||||
set QT6_CONFIG_DLL=Qt6Core.dll
|
||||
IF /I "%BUILD_CFG%"=="Debug" (
|
||||
set QT6_CONFIG_DLL=Qt6Cored.dll
|
||||
)
|
||||
set DEPENDENCY_INSTALL_NAME=qt6-%QT6_VERSION%-%QT6_INSTALL_SUFFIX%
|
||||
set QT6_AQT_OUTPUT_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
|
||||
set QT6_INSTALL_DIR=%QT6_AQT_OUTPUT_DIR%\%QT6_VERSION%\%QT6_INSTALL_SUFFIX%
|
||||
set QT_DIR=%QT6_INSTALL_DIR%
|
||||
set QT6_HOST_AQT_OUTPUT_DIR=
|
||||
set QT6_HOST_INSTALL_DIR=
|
||||
set QT_HOST_PATH=
|
||||
IF NOT "%QT6_HOST_INSTALL_SUFFIX%"=="" (
|
||||
set QT6_HOST_AQT_OUTPUT_DIR=%INSTALL_DIR%\qt6-%QT6_VERSION%-%QT6_HOST_INSTALL_SUFFIX%
|
||||
set QT6_HOST_INSTALL_DIR=%INSTALL_DIR%\qt6-%QT6_VERSION%-%QT6_HOST_INSTALL_SUFFIX%\%QT6_VERSION%\%QT6_HOST_INSTALL_SUFFIX%
|
||||
set QT_HOST_PATH=%INSTALL_DIR%\qt6-%QT6_VERSION%-%QT6_HOST_INSTALL_SUFFIX%\%QT6_VERSION%\%QT6_HOST_INSTALL_SUFFIX%
|
||||
)
|
||||
set QT6_CONFIG_DLL=Qt6Core.dll
|
||||
IF /I "%BUILD_CFG%"=="Debug" (
|
||||
set QT6_CONFIG_DLL=Qt6Cored.dll
|
||||
)
|
||||
set NEXT_DEPENDENCY_LABEL=Successful
|
||||
|
||||
IF NOT "%IFCOS_INSTALL_QT6%"=="TRUE" (
|
||||
call cecho.cmd 0 13 "IFCOS_INSTALL_QT6 not 'TRUE', skipping installation of Qt6."
|
||||
goto :Successful
|
||||
)
|
||||
|
||||
echo QT6_INSTALL_DIR=%QT6_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
echo QT_DIR=%QT_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
|
||||
call :CheckInstallation
|
||||
if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
|
||||
|
||||
IF EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" (
|
||||
echo Found existing "%QT6_INSTALL_DIR%" for %BUILD_CFG%, skipping
|
||||
call :MarkInstallation
|
||||
goto :Successful
|
||||
)
|
||||
|
||||
echo QT6_INSTALL_DIR=%QT6_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
echo QT_DIR=%QT_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||
echo QT6_HOST_INSTALL_DIR=%QT6_HOST_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
echo QT_HOST_PATH=%QT_HOST_PATH%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||
)
|
||||
|
||||
set QT6_TARGET_INSTALLED=FALSE
|
||||
IF EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" IF EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" set QT6_TARGET_INSTALLED=TRUE
|
||||
set QT6_HOST_INSTALLED=TRUE
|
||||
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||
set QT6_HOST_INSTALLED=FALSE
|
||||
IF EXIST "%QT6_HOST_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" IF EXIST "%QT6_HOST_INSTALL_DIR%\bin\moc.exe" IF EXIST "%QT6_HOST_INSTALL_DIR%\bin\rcc.exe" set QT6_HOST_INSTALLED=TRUE
|
||||
)
|
||||
|
||||
IF "%QT6_TARGET_INSTALLED%"=="TRUE" IF "%QT6_HOST_INSTALLED%"=="TRUE" (
|
||||
echo Found existing "%QT6_INSTALL_DIR%" for %BUILD_CFG%, skipping
|
||||
IF DEFINED QT6_HOST_INSTALL_DIR echo Found existing Qt host tools at "%QT6_HOST_INSTALL_DIR%", skipping
|
||||
call :MarkInstallation
|
||||
goto :Successful
|
||||
)
|
||||
|
||||
set AQT_PYTHON=python
|
||||
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" IF EXIST "%PYTHONHOME%\python.exe" set AQT_PYTHON="%PYTHONHOME%\python.exe"
|
||||
|
||||
%AQT_PYTHON% -m pip install --upgrade aqtinstall
|
||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||
|
||||
%AQT_PYTHON% -m aqt install-qt windows desktop %QT6_VERSION% %QT6_ARCH% -O "%QT6_AQT_OUTPUT_DIR%" --archives qtbase
|
||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||
|
||||
IF NOT EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" (
|
||||
call cecho.cmd 0 12 "Qt6 installation did not produce Qt6Config.cmake at %QT6_INSTALL_DIR%."
|
||||
%AQT_PYTHON% -m pip install --upgrade aqtinstall
|
||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||
|
||||
IF NOT "%QT6_TARGET_INSTALLED%"=="TRUE" (
|
||||
%AQT_PYTHON% -m aqt install-qt windows desktop %QT6_VERSION% %QT6_ARCH% -O "%QT6_AQT_OUTPUT_DIR%" --archives qtbase
|
||||
IF ERRORLEVEL 1 GOTO :Error
|
||||
)
|
||||
|
||||
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||
IF NOT "%QT6_HOST_INSTALLED%"=="TRUE" (
|
||||
%AQT_PYTHON% -m aqt install-qt windows desktop %QT6_VERSION% %QT6_HOST_ARCH% -O "%QT6_HOST_AQT_OUTPUT_DIR%" --archives qtbase
|
||||
IF ERRORLEVEL 1 GOTO :Error
|
||||
)
|
||||
)
|
||||
|
||||
IF NOT EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" (
|
||||
call cecho.cmd 0 12 "Qt6 installation did not produce Qt6Config.cmake at %QT6_INSTALL_DIR%."
|
||||
GOTO :Error
|
||||
)
|
||||
|
||||
IF NOT EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" (
|
||||
call cecho.cmd 0 12 "Qt6 installation did not produce %BUILD_CFG% runtime %QT6_CONFIG_DLL% at %QT6_INSTALL_DIR%\bin."
|
||||
GOTO :Error
|
||||
)
|
||||
|
||||
call :MarkInstallation
|
||||
goto :Successful
|
||||
GOTO :Error
|
||||
)
|
||||
|
||||
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||
IF NOT EXIST "%QT6_HOST_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" (
|
||||
call cecho.cmd 0 12 "Qt6 host installation did not produce Qt6Config.cmake at %QT6_HOST_INSTALL_DIR%."
|
||||
GOTO :Error
|
||||
)
|
||||
IF NOT EXIST "%QT6_HOST_INSTALL_DIR%\bin\moc.exe" (
|
||||
call cecho.cmd 0 12 "Qt6 host installation did not produce moc.exe at %QT6_HOST_INSTALL_DIR%\bin."
|
||||
GOTO :Error
|
||||
)
|
||||
IF NOT EXIST "%QT6_HOST_INSTALL_DIR%\bin\rcc.exe" (
|
||||
call cecho.cmd 0 12 "Qt6 host installation did not produce rcc.exe at %QT6_HOST_INSTALL_DIR%\bin."
|
||||
GOTO :Error
|
||||
)
|
||||
)
|
||||
|
||||
call :MarkInstallation
|
||||
goto :Successful
|
||||
|
||||
:manifold
|
||||
set DEPENDENCY_NAME=manifold
|
||||
|
||||
@@ -127,6 +127,7 @@ set USD_INSTALL_DIR=%INSTALL_DIR%\usd
|
||||
set ROCKSDB_INSTALL_DIR=%INSTALL_DIR%\rocksdb
|
||||
set ZSTD_INSTALL_DIR=%INSTALL_DIR%\zstd
|
||||
if not defined QT_DIR if defined QT6_INSTALL_DIR set QT_DIR=%QT6_INSTALL_DIR%
|
||||
if not defined QT_HOST_PATH if defined QT6_HOST_INSTALL_DIR set QT_HOST_PATH=%QT6_HOST_INSTALL_DIR%
|
||||
|
||||
echo.
|
||||
call cecho.cmd 0 10 "Script configuration:"
|
||||
@@ -161,6 +162,7 @@ echo USD_INSTALL_DIR = %USD_INSTALL_DIR%
|
||||
echo ROCKSDB_INSTALL_DIR = %ROCKSDB_INSTALL_DIR%
|
||||
echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR%
|
||||
echo QT_DIR = %QT_DIR%
|
||||
echo QT_HOST_PATH = %QT_HOST_PATH%
|
||||
echo CCACHE_INSTALL_DIR = %CCACHE_INSTALL_DIR%
|
||||
echo.
|
||||
echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX%
|
||||
@@ -181,6 +183,8 @@ if defined QT_DIR set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%QT_DIR%
|
||||
|
||||
set QT_DIR_OPTION=
|
||||
if defined QT_DIR set QT_DIR_OPTION=-DQT_DIR="%QT_DIR%"
|
||||
set QT_HOST_PATH_OPTION=
|
||||
if defined QT_HOST_PATH set QT_HOST_PATH_OPTION=-DQT_HOST_PATH="%QT_HOST_PATH%"
|
||||
|
||||
:: Not fully supported - not available from install-ifcopenshell
|
||||
:: and some logs are still showing Visual Studio generators.
|
||||
@@ -202,6 +206,7 @@ cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% %ARCH_OPTION% %VS_TOOLSET_OPTION% ^
|
||||
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
||||
-DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^
|
||||
%QT_DIR_OPTION% ^
|
||||
%QT_HOST_PATH_OPTION% ^
|
||||
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% -DVERSION_OVERRIDE=%VERSION_OVERRIDE% ^
|
||||
%ARGUMENTS%
|
||||
|
||||
|
||||
Reference in New Issue
Block a user