Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Molenkamp <github@lazydodo.com>2021-06-22 03:11:30 +0300
committerRay Molenkamp <github@lazydodo.com>2021-06-22 03:11:30 +0300
commitd443dcc73364c55385dbd82745459f6af0af5a41 (patch)
tree4fbd08a4e6954502301d492c4be41b7c503dd029
parent6f158f834dcfa638639391f37afcb2ca8457cb45 (diff)
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.
-rw-r--r--build_files/cmake/platform/platform_win32.cmake6
-rw-r--r--build_files/windows/autodetect_msvc.cmd3
-rw-r--r--build_files/windows/check_libraries.cmd1
-rw-r--r--build_files/windows/configure_msbuild.cmd6
-rw-r--r--build_files/windows/detect_msvc2022.cmd3
-rw-r--r--build_files/windows/parse_arguments.cmd8
6 files changed, 22 insertions, 5 deletions
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