[Bf-blender-cvs] [d443dcc7336] master: Build/Windows: Preliminary VS 2022 support.

Ray Molenkamp noreply at git.blender.org
Tue Jun 22 02:11:36 CEST 2021


Commit: d443dcc73364c55385dbd82745459f6af0af5a41
Author: Ray Molenkamp
Date:   Mon Jun 21 18:11:30 2021 -0600
Branches: master
https://developer.blender.org/rBd443dcc73364c55385dbd82745459f6af0af5a41

Build/Windows: Preliminary VS 2022 support.

This adds preliminary VS 2022 support, since
there currently is no CMake version that
supports the VS2022 IDE only ninja support
was tested.

IDE support should work without any additional
changes as soon as an updated CMake becomes
available.

As VS2022 appears to keep binary compatibility
with earlier MSVC versions, the current SVN
libraries will work for this version.

===================================================================

M	build_files/cmake/platform/platform_win32.cmake
M	build_files/windows/autodetect_msvc.cmd
M	build_files/windows/check_libraries.cmd
M	build_files/windows/configure_msbuild.cmd
A	build_files/windows/detect_msvc2022.cmd
M	build_files/windows/parse_arguments.cmd

===================================================================

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



More information about the Bf-blender-cvs mailing list