diff --git a/win/build-deps.cmd b/win/build-deps.cmd index 96a5150bf0..55f109ff56 100644 --- a/win/build-deps.cmd +++ b/win/build-deps.cmd @@ -181,8 +181,8 @@ echo. cd "%DEPS_DIR%" -:: VERSIONS -set OCCT_VERSION=7.8.1 +:: VERSIONS +set OCCT_VERSION=7.8.1 IF DEFINED QT6_VERSION ( echo Using overridden QT6_VERSION: '%QT6_VERSION%' ) else ( @@ -209,8 +209,8 @@ IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( :: Cache last used CMake generator and configurable dependency dirs for other scripts to use :: This is consolidated at the beginning of the script so that the script can be partially :: executed by jumping (using goto) to different labels. -if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -echo QT6_VERSION=%QT6_VERSION%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" +if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\%BUILD_DEPS_CACHE_PATH%" +echo QT6_VERSION=%QT6_VERSION%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" ) @@ -342,10 +342,10 @@ popd :mpfr -IF EXIST "%INSTALL_DIR%\mpfr" ( - echo Found existing "%INSTALL_DIR%\mpfr", skipping - goto :Boost -) +IF EXIST "%INSTALL_DIR%\mpfr" ( + echo Found existing "%INSTALL_DIR%\mpfr", skipping + goto :Boost +) set DEPENDENCY_NAME=mpfr set DEPENDENCY_DIR=%DEPS_DIR%\mpfr @@ -378,9 +378,9 @@ copy lib\%VS_PLATFORM%\%DEBUG_OR_RELEASE%\* "%INSTALL_DIR%\mpfr" IF NOT %ERRORLEVEL%==0 GOTO :Error popd -:: Note all of the dependencies have appropriate label so that user can easily skip something if wanted -:: by modifying this file and using goto. -:Boost +:: Note all of the dependencies have appropriate label so that user can easily skip something if wanted +:: by modifying this file and using goto. +:Boost :: DEPENDENCY_NAME is used for logging and DEPENDENCY_DIR for saving from some redundant typing set DEPENDENCY_NAME=Boost %BOOST_VERSION% set DEPENDENCY_DIR=%DEPS_DIR%\boost_%BOOST_VER% @@ -741,7 +741,7 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error call :MarkInstallation :qt6 -set DEPENDENCY_NAME=Qt6 %QT6_VERSION% +set DEPENDENCY_NAME=qt6 set QT6_MSVC_YEAR=%VS_VER% IF /I "%VS_TOOLSET%"=="v141" set QT6_MSVC_YEAR=2017 @@ -769,6 +769,10 @@ 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 NEXT_DEPENDENCY_LABEL=Successful IF NOT "%IFCOS_INSTALL_QT6%"=="TRUE" ( @@ -782,8 +786,8 @@ echo QT_DIR=%QT_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" call :CheckInstallation if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% -IF EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" ( - echo Found existing "%QT6_INSTALL_DIR%", skipping +IF EXIST "%QT6_INSTALL_DIR%\bin\%QT6_CONFIG_DLL%" ( + echo Found existing "%QT6_INSTALL_DIR%" for %BUILD_CFG%, skipping call :MarkInstallation goto :Successful ) @@ -802,6 +806,11 @@ IF NOT EXIST "%QT6_INSTALL_DIR%\lib\cmake\Qt6\Qt6Config.cmake" ( 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 diff --git a/win/utils/tools.ps1 b/win/utils/tools.ps1 index a36186c508..ad7f04de5d 100644 --- a/win/utils/tools.ps1 +++ b/win/utils/tools.ps1 @@ -56,6 +56,11 @@ function mark_based_on_artifacts { $artifact = "lib\rocksdb.lib" } } + elseif ($dependency_name -eq "qt6") { + # Qt has a nested install layout, so build-deps.cmd validates its + # Release/Debug artifacts before marking the installation. + return + } else { throw "Unexpected dependency name '$dependency_name'." } @@ -104,6 +109,7 @@ function check_installation { # - OpenCASCADE: incompatible # - rocksdb: incompatible # - opencollada: incompatible +# - Qt6: compatible when both Release and Debug artifacts are installed # - zstd: compatible function setup_build_cfg {