mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 13:46:54 +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%"=="v143" set QT6_MSVC_YEAR=2022
|
||||||
IF /I "%VS_TOOLSET%"=="v145" set QT6_MSVC_YEAR=2026
|
IF /I "%VS_TOOLSET%"=="v145" set QT6_MSVC_YEAR=2026
|
||||||
|
|
||||||
set QT6_ARCH=
|
set QT6_ARCH=
|
||||||
set QT6_INSTALL_SUFFIX=
|
set QT6_INSTALL_SUFFIX=
|
||||||
IF /I "%TARGET_ARCH%"=="x64" (
|
set QT6_HOST_ARCH=
|
||||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_64
|
set QT6_HOST_INSTALL_SUFFIX=
|
||||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_64
|
IF /I "%TARGET_ARCH%"=="x64" (
|
||||||
)
|
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_64
|
||||||
IF /I "%TARGET_ARCH%"=="arm64" (
|
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_64
|
||||||
set QT6_ARCH=win64_msvc%QT6_MSVC_YEAR%_arm64_cross_compiled
|
)
|
||||||
set QT6_INSTALL_SUFFIX=msvc%QT6_MSVC_YEAR%_arm64
|
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%"=="" (
|
IF "%QT6_ARCH%"=="" (
|
||||||
call cecho.cmd 0 12 "Automatic Qt6 installation is only supported for x64 and arm64 builds."
|
call cecho.cmd 0 12 "Automatic Qt6 installation is only supported for x64 and arm64 builds."
|
||||||
GOTO :Error
|
GOTO :Error
|
||||||
)
|
)
|
||||||
|
|
||||||
set DEPENDENCY_INSTALL_NAME=qt6-%QT6_VERSION%-%QT6_INSTALL_SUFFIX%
|
set DEPENDENCY_INSTALL_NAME=qt6-%QT6_VERSION%-%QT6_INSTALL_SUFFIX%
|
||||||
set QT6_AQT_OUTPUT_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
|
set QT6_AQT_OUTPUT_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
|
||||||
set QT6_INSTALL_DIR=%QT6_AQT_OUTPUT_DIR%\%QT6_VERSION%\%QT6_INSTALL_SUFFIX%
|
set QT6_INSTALL_DIR=%QT6_AQT_OUTPUT_DIR%\%QT6_VERSION%\%QT6_INSTALL_SUFFIX%
|
||||||
set QT_DIR=%QT6_INSTALL_DIR%
|
set QT_DIR=%QT6_INSTALL_DIR%
|
||||||
set QT6_CONFIG_DLL=Qt6Core.dll
|
set QT6_HOST_AQT_OUTPUT_DIR=
|
||||||
IF /I "%BUILD_CFG%"=="Debug" (
|
set QT6_HOST_INSTALL_DIR=
|
||||||
set QT6_CONFIG_DLL=Qt6Cored.dll
|
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
|
set NEXT_DEPENDENCY_LABEL=Successful
|
||||||
|
|
||||||
IF NOT "%IFCOS_INSTALL_QT6%"=="TRUE" (
|
IF NOT "%IFCOS_INSTALL_QT6%"=="TRUE" (
|
||||||
call cecho.cmd 0 13 "IFCOS_INSTALL_QT6 not 'TRUE', skipping installation of Qt6."
|
call cecho.cmd 0 13 "IFCOS_INSTALL_QT6 not 'TRUE', skipping installation of Qt6."
|
||||||
goto :Successful
|
goto :Successful
|
||||||
)
|
)
|
||||||
|
|
||||||
echo QT6_INSTALL_DIR=%QT6_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
echo QT6_INSTALL_DIR=%QT6_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
echo QT_DIR=%QT_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
echo QT_DIR=%QT_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
|
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||||
call :CheckInstallation
|
echo QT6_HOST_INSTALL_DIR=%QT6_HOST_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
|
echo QT_HOST_PATH=%QT_HOST_PATH%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
|
)
|
||||||
IF EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" (
|
|
||||||
echo Found existing "%QT6_INSTALL_DIR%" for %BUILD_CFG%, skipping
|
set QT6_TARGET_INSTALLED=FALSE
|
||||||
call :MarkInstallation
|
IF EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" IF EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" set QT6_TARGET_INSTALLED=TRUE
|
||||||
goto :Successful
|
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
|
set AQT_PYTHON=python
|
||||||
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" IF EXIST "%PYTHONHOME%\python.exe" set AQT_PYTHON="%PYTHONHOME%\python.exe"
|
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" IF EXIST "%PYTHONHOME%\python.exe" set AQT_PYTHON="%PYTHONHOME%\python.exe"
|
||||||
|
|
||||||
%AQT_PYTHON% -m pip install --upgrade aqtinstall
|
%AQT_PYTHON% -m pip install --upgrade aqtinstall
|
||||||
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
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 "%QT6_TARGET_INSTALLED%"=="TRUE" (
|
||||||
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 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%."
|
|
||||||
|
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
|
GOTO :Error
|
||||||
)
|
)
|
||||||
|
|
||||||
IF NOT EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" (
|
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."
|
call cecho.cmd 0 12 "Qt6 installation did not produce %BUILD_CFG% runtime %QT6_CONFIG_DLL% at %QT6_INSTALL_DIR%\bin."
|
||||||
GOTO :Error
|
GOTO :Error
|
||||||
)
|
)
|
||||||
|
|
||||||
call :MarkInstallation
|
IF DEFINED QT6_HOST_INSTALL_DIR (
|
||||||
goto :Successful
|
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
|
:manifold
|
||||||
set DEPENDENCY_NAME=manifold
|
set DEPENDENCY_NAME=manifold
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ set USD_INSTALL_DIR=%INSTALL_DIR%\usd
|
|||||||
set ROCKSDB_INSTALL_DIR=%INSTALL_DIR%\rocksdb
|
set ROCKSDB_INSTALL_DIR=%INSTALL_DIR%\rocksdb
|
||||||
set ZSTD_INSTALL_DIR=%INSTALL_DIR%\zstd
|
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_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.
|
echo.
|
||||||
call cecho.cmd 0 10 "Script configuration:"
|
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 ROCKSDB_INSTALL_DIR = %ROCKSDB_INSTALL_DIR%
|
||||||
echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR%
|
echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR%
|
||||||
echo QT_DIR = %QT_DIR%
|
echo QT_DIR = %QT_DIR%
|
||||||
|
echo QT_HOST_PATH = %QT_HOST_PATH%
|
||||||
echo CCACHE_INSTALL_DIR = %CCACHE_INSTALL_DIR%
|
echo CCACHE_INSTALL_DIR = %CCACHE_INSTALL_DIR%
|
||||||
echo.
|
echo.
|
||||||
echo CMAKE_INSTALL_PREFIX = %CMAKE_INSTALL_PREFIX%
|
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=
|
set QT_DIR_OPTION=
|
||||||
if defined QT_DIR set QT_DIR_OPTION=-DQT_DIR="%QT_DIR%"
|
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
|
:: Not fully supported - not available from install-ifcopenshell
|
||||||
:: and some logs are still showing Visual Studio generators.
|
:: 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 ^
|
-DWITH_ROCKSDB=On -DWITH_ZSTD=On ^
|
||||||
-DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^
|
-DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^
|
||||||
%QT_DIR_OPTION% ^
|
%QT_DIR_OPTION% ^
|
||||||
|
%QT_HOST_PATH_OPTION% ^
|
||||||
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% -DVERSION_OVERRIDE=%VERSION_OVERRIDE% ^
|
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% -DVERSION_OVERRIDE=%VERSION_OVERRIDE% ^
|
||||||
%ARGUMENTS%
|
%ARGUMENTS%
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user