diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 99a2cb7966f..8b9a48fca74 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -261,8 +261,10 @@ if(NOT DEFINED LIBDIR) else() message(FATAL_ERROR "32 bit compiler detected, blender no longer provides pre-build libraries for 32 bit windows, please set the LIBDIR cmake variable to your own library folder") endif() - # Can be 1910..1912 - if(MSVC_VERSION GREATER 1919) + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29.30130) + message(STATUS "Visual Studio 2022 detected.") + set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15) + elseif(MSVC_VERSION GREATER 1919) message(STATUS "Visual Studio 2019 detected.") set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15) elseif(MSVC_VERSION GREATER 1909) diff --git a/build_files/windows/autodetect_msvc.cmd b/build_files/windows/autodetect_msvc.cmd index 85b3c095d1f..6cee4765b93 100644 --- a/build_files/windows/autodetect_msvc.cmd +++ b/build_files/windows/autodetect_msvc.cmd @@ -6,6 +6,9 @@ if %ERRORLEVEL% EQU 0 goto DetectionComplete call "%~dp0\detect_msvc2019.cmd" if %ERRORLEVEL% EQU 0 goto DetectionComplete +call "%~dp0\detect_msvc2022.cmd" +if %ERRORLEVEL% EQU 0 goto DetectionComplete + echo Compiler Detection failed. Use verbose switch for more information. exit /b 1 diff --git a/build_files/windows/check_libraries.cmd b/build_files/windows/check_libraries.cmd index 8e43cda9eb7..c495ee6eee9 100644 --- a/build_files/windows/check_libraries.cmd +++ b/build_files/windows/check_libraries.cmd @@ -1,5 +1,6 @@ if "%BUILD_VS_YEAR%"=="2017" set BUILD_VS_LIBDIRPOST=vc15 if "%BUILD_VS_YEAR%"=="2019" set BUILD_VS_LIBDIRPOST=vc15 +if "%BUILD_VS_YEAR%"=="2022" set BUILD_VS_LIBDIRPOST=vc15 set BUILD_VS_SVNDIR=win64_%BUILD_VS_LIBDIRPOST% set BUILD_VS_LIBDIR="%BLENDER_DIR%..\lib\%BUILD_VS_SVNDIR%" diff --git a/build_files/windows/configure_msbuild.cmd b/build_files/windows/configure_msbuild.cmd index be69f99a8e8..a9267e8cfbb 100644 --- a/build_files/windows/configure_msbuild.cmd +++ b/build_files/windows/configure_msbuild.cmd @@ -19,10 +19,10 @@ if "%WITH_PYDEBUG%"=="1" ( set PYDEBUG_CMAKE_ARGS=-DWINDOWS_PYTHON_DEBUG=On ) -if "%BUILD_VS_YEAR%"=="2019" ( - set BUILD_PLATFORM_SELECT=-A %MSBUILD_PLATFORM% -) else ( +if "%BUILD_VS_YEAR%"=="2017" ( set BUILD_GENERATOR_POST=%WINDOWS_ARCH% +) else ( + set BUILD_PLATFORM_SELECT=-A %MSBUILD_PLATFORM% ) set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Visual Studio %BUILD_VS_VER% %BUILD_VS_YEAR%%BUILD_GENERATOR_POST%" %BUILD_PLATFORM_SELECT% %TESTS_CMAKE_ARGS% %CLANG_CMAKE_ARGS% %ASAN_CMAKE_ARGS% %PYDEBUG_CMAKE_ARGS% diff --git a/build_files/windows/detect_msvc2022.cmd b/build_files/windows/detect_msvc2022.cmd new file mode 100644 index 00000000000..f30210f4e38 --- /dev/null +++ b/build_files/windows/detect_msvc2022.cmd @@ -0,0 +1,3 @@ +set BUILD_VS_VER=17 +set BUILD_VS_YEAR=2022 +call "%~dp0\detect_msvc_vswhere.cmd" diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd index 54dc41ece87..000b98c992e 100644 --- a/build_files/windows/parse_arguments.cmd +++ b/build_files/windows/parse_arguments.cmd @@ -66,6 +66,14 @@ if NOT "%1" == "" ( ) else if "%1" == "2019b" ( set BUILD_VS_YEAR=2019 set VSWHERE_ARGS=-products Microsoft.VisualStudio.Product.BuildTools + ) else if "%1" == "2022" ( + set BUILD_VS_YEAR=2022 + ) else if "%1" == "2022pre" ( + set BUILD_VS_YEAR=2022 + set VSWHERE_ARGS=-prerelease + ) else if "%1" == "2022b" ( + set BUILD_VS_YEAR=2022 + set VSWHERE_ARGS=-products Microsoft.VisualStudio.Product.BuildTools ) else if "%1" == "packagename" ( set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -DCPACK_OVERRIDE_PACKAGENAME="%2" shift /1