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>2019-02-23 06:49:22 +0300
committerRay Molenkamp <github@lazydodo.com>2019-02-23 06:54:27 +0300
commit1d2fc413c89d434f5d5e140cd01522e562c10ecd (patch)
treea049470989f1775a4b08ad06ce1521dd6de86047
parent633b77b0eedb494ae9ddce22ee36bfb3bf698a15 (diff)
make.bat: Preliminary Visual Studio 2019 support.
VS2019 is binary compatible with the existing vc14 libraries and no new libraries libs are required in svn. VS2019 support requires cmake 3.14. VS2019 is still in pre-release state, you are required to explicitly select the pre-release version by using: make full 2019pre
-rw-r--r--build_files/cmake/platform/platform_win32.cmake5
-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.cmd15
-rw-r--r--build_files/windows/detect_msvc2017.cmd75
-rw-r--r--build_files/windows/detect_msvc2019.cmd3
-rw-r--r--build_files/windows/detect_msvc_vswhere.cmd79
-rw-r--r--build_files/windows/parse_arguments.cmd9
8 files changed, 111 insertions, 79 deletions
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index 5b738e06763..02c346e845b 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -170,7 +170,10 @@ if(NOT DEFINED LIBDIR)
set(LIBDIR_BASE "windows")
endif()
# Can be 1910..1912
- if(MSVC_VERSION GREATER 1909)
+ if(MSVC_VERSION GREATER 1919)
+ message(STATUS "Visual Studio 2019 detected.")
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
+ elseif(MSVC_VERSION GREATER 1909)
message(STATUS "Visual Studio 2017 detected.")
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
elseif(MSVC_VERSION EQUAL 1900)
diff --git a/build_files/windows/autodetect_msvc.cmd b/build_files/windows/autodetect_msvc.cmd
index 4dbe009a890..c2884bc1fcd 100644
--- a/build_files/windows/autodetect_msvc.cmd
+++ b/build_files/windows/autodetect_msvc.cmd
@@ -3,6 +3,9 @@ echo No explicit msvc version requested, autodetecting version.
call "%~dp0\detect_msvc2017.cmd"
if %ERRORLEVEL% EQU 0 goto DetectionComplete
+call "%~dp0\detect_msvc2019.cmd"
+if %ERRORLEVEL% EQU 0 goto DetectionComplete
+
call "%~dp0\detect_msvc2015.cmd"
if %ERRORLEVEL% EQU 0 goto DetectionComplete
diff --git a/build_files/windows/check_libraries.cmd b/build_files/windows/check_libraries.cmd
index 506728a194f..8c5f7ec7e17 100644
--- a/build_files/windows/check_libraries.cmd
+++ b/build_files/windows/check_libraries.cmd
@@ -1,5 +1,6 @@
if "%BUILD_VS_YEAR%"=="2015" set BUILD_VS_LIBDIRPOST=vc14
if "%BUILD_VS_YEAR%"=="2017" set BUILD_VS_LIBDIRPOST=vc14
+if "%BUILD_VS_YEAR%"=="2019" set BUILD_VS_LIBDIRPOST=vc14
if "%BUILD_ARCH%"=="x64" (
set BUILD_VS_SVNDIR=win64_%BUILD_VS_LIBDIRPOST%
diff --git a/build_files/windows/configure_msbuild.cmd b/build_files/windows/configure_msbuild.cmd
index 28d9950cb11..c316e2286e5 100644
--- a/build_files/windows/configure_msbuild.cmd
+++ b/build_files/windows/configure_msbuild.cmd
@@ -1,3 +1,5 @@
+set BUILD_GENERATOR_POST=
+set BUILD_PLATFORM_SELECT=
if "%BUILD_ARCH%"=="x64" (
set MSBUILD_PLATFORM=x64
) else if "%BUILD_ARCH%"=="x86" (
@@ -23,7 +25,14 @@ if "%WITH_CLANG%"=="1" (
if "%WITH_PYDEBUG%"=="1" (
set PYDEBUG_CMAKE_ARGS=-DWINDOWS_PYTHON_DEBUG=On
)
-set BUILD_CMAKE_ARGS=%BUILD_CMAKE_ARGS% -G "Visual Studio %BUILD_VS_VER% %BUILD_VS_YEAR%%WINDOWS_ARCH%" %TESTS_CMAKE_ARGS% %CLANG_CMAKE_ARGS% %ASAN_CMAKE_ARGS% %PYDEBUG_CMAKE_ARGS%
+
+if "%BUILD_VS_YEAR%"=="2019" (
+ set BUILD_PLATFORM_SELECT=-A %MSBUILD_PLATFORM%
+) else (
+ set BUILD_GENERATOR_POST=%WINDOWS_ARCH%
+)
+
+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%
if NOT EXIST %BUILD_DIR%\nul (
mkdir %BUILD_DIR%
@@ -52,8 +61,8 @@ if "%MUST_CONFIGURE%"=="1" (
%BUILD_CMAKE_ARGS% ^
-H%BLENDER_DIR% ^
-B%BUILD_DIR%
-
- if %ERRORLEVEL% NEQ 0 (
+
+ if errorlevel 1 (
echo "Configuration Failed"
exit /b 1
)
diff --git a/build_files/windows/detect_msvc2017.cmd b/build_files/windows/detect_msvc2017.cmd
index a745d852616..5f760275f78 100644
--- a/build_files/windows/detect_msvc2017.cmd
+++ b/build_files/windows/detect_msvc2017.cmd
@@ -1,76 +1,3 @@
-if NOT "%verbose%" == "" (
- echo Detecting msvc 2017
-)
set BUILD_VS_VER=15
set BUILD_VS_YEAR=2017
-set ProgramFilesX86=%ProgramFiles(x86)%
-if not exist "%ProgramFilesX86%" set ProgramFilesX86=%ProgramFiles%
-
-set vs_where=%ProgramFilesX86%\Microsoft Visual Studio\Installer\vswhere.exe
-if not exist "%vs_where%" (
- if NOT "%verbose%" == "" (
- echo Visual Studio 2017 ^(15.2 or newer^) is not detected
- )
- goto FAIL
-)
-
-if NOT "%verbose%" == "" (
- echo "%vs_where%" -latest %VSWHERE_ARGS% -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64
- )
-
-for /f "usebackq tokens=1* delims=: " %%i in (`"%vs_where%" -latest %VSWHERE_ARGS% -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64`) do (
- if /i "%%i"=="installationPath" set VS_InstallDir=%%j
-)
-
-if "%VS_InstallDir%"=="" (
- if NOT "%verbose%" == "" (
- echo Visual Studio is detected but the "Desktop development with C++" workload has not been instlled
- goto FAIL
- )
-)
-
-set VCVARS=%VS_InstallDir%\VC\Auxiliary\Build\vcvarsall.bat
-if exist "%VCVARS%" (
- call "%VCVARS%" %BUILD_ARCH%
-) else (
- if NOT "%verbose%" == "" (
- echo "%VCVARS%" not found
- )
- goto FAIL
-)
-
-rem try msbuild
-msbuild /version > NUL
-if errorlevel 1 (
- if NOT "%verbose%" == "" (
- echo Visual Studio %BUILD_VS_YEAR% msbuild not found
- )
- goto FAIL
-)
-
-if NOT "%verbose%" == "" (
- echo Visual Studio %BUILD_VS_YEAR% msbuild found
-)
-
-REM try the c++ compiler
-cl 2> NUL 1>&2
-if errorlevel 1 (
- if NOT "%verbose%" == "" (
- echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found
- )
- goto FAIL
-)
-
-if NOT "%verbose%" == "" (
- echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found
-)
-
-if NOT "%verbose%" == "" (
- echo Visual Studio 2017 is detected successfully
-)
-goto EOF
-
-:FAIL
-exit /b 1
-
-:EOF
+call "%~dp0\detect_msvc_vswhere.cmd"
diff --git a/build_files/windows/detect_msvc2019.cmd b/build_files/windows/detect_msvc2019.cmd
new file mode 100644
index 00000000000..d75d6bae0d9
--- /dev/null
+++ b/build_files/windows/detect_msvc2019.cmd
@@ -0,0 +1,3 @@
+set BUILD_VS_VER=16
+set BUILD_VS_YEAR=2019
+call "%~dp0\detect_msvc_vswhere.cmd"
diff --git a/build_files/windows/detect_msvc_vswhere.cmd b/build_files/windows/detect_msvc_vswhere.cmd
new file mode 100644
index 00000000000..a538e506b39
--- /dev/null
+++ b/build_files/windows/detect_msvc_vswhere.cmd
@@ -0,0 +1,79 @@
+if NOT "%verbose%" == "" (
+ echo Detecting msvc %BUILD_VS_YEAR%
+)
+
+set ProgramFilesX86=%ProgramFiles(x86)%
+if not exist "%ProgramFilesX86%" set ProgramFilesX86=%ProgramFiles%
+
+set vs_where=%ProgramFilesX86%\Microsoft Visual Studio\Installer\vswhere.exe
+if not exist "%vs_where%" (
+ if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% is not detected
+ )
+ goto FAIL
+)
+
+if NOT "%verbose%" == "" (
+ echo "%vs_where%" -latest %VSWHERE_ARGS% -version ^[%BUILD_VS_VER%.0^,%BUILD_VS_VER%.99^) -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64
+ )
+
+for /f "usebackq tokens=1* delims=: " %%i in (`"%vs_where%" -latest -version ^[%BUILD_VS_VER%.0^,%BUILD_VS_VER%.99^) %VSWHERE_ARGS% -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64`) do (
+ if /i "%%i"=="installationPath" set VS_InstallDir=%%j
+)
+
+if NOT "%verbose%" == "" (
+ echo VS_Installdir="%VS_InstallDir%"
+)
+
+if "%VS_InstallDir%"=="" (
+ if NOT "%verbose%" == "" (
+ echo Visual Studio is detected but the "Desktop development with C++" workload has not been instlled
+ goto FAIL
+ )
+)
+
+set VCVARS=%VS_InstallDir%\VC\Auxiliary\Build\vcvarsall.bat
+if exist "%VCVARS%" (
+ call "%VCVARS%" %BUILD_ARCH%
+) else (
+ if NOT "%verbose%" == "" (
+ echo "%VCVARS%" not found
+ )
+ goto FAIL
+)
+
+rem try msbuild
+msbuild /version > NUL
+if errorlevel 1 (
+ if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% msbuild not found
+ )
+ goto FAIL
+)
+
+if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% msbuild found
+)
+
+REM try the c++ compiler
+cl 2> NUL 1>&2
+if errorlevel 1 (
+ if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler not found
+ )
+ goto FAIL
+)
+
+if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% C/C++ Compiler found
+)
+
+if NOT "%verbose%" == "" (
+ echo Visual Studio %BUILD_VS_YEAR% is detected successfully
+)
+goto EOF
+
+:FAIL
+exit /b 1
+
+:EOF
diff --git a/build_files/windows/parse_arguments.cmd b/build_files/windows/parse_arguments.cmd
index 2c80a4d0b02..ada78e1defb 100644
--- a/build_files/windows/parse_arguments.cmd
+++ b/build_files/windows/parse_arguments.cmd
@@ -50,10 +50,17 @@ if NOT "%1" == "" (
) else if "%1" == "2017pre" (
set BUILD_VS_YEAR=2017
set VSWHERE_ARGS=-prerelease
- set BUILD_VS_YEAR=2017
) else if "%1" == "2017b" (
set BUILD_VS_YEAR=2017
set VSWHERE_ARGS=-products Microsoft.VisualStudio.Product.BuildTools
+ ) else if "%1" == "2019" (
+ set BUILD_VS_YEAR=2019
+ ) else if "%1" == "2019pre" (
+ set BUILD_VS_YEAR=2019
+ set VSWHERE_ARGS=-prerelease
+ ) else if "%1" == "2019b" (
+ set BUILD_VS_YEAR=2019
+ set VSWHERE_ARGS=-products Microsoft.VisualStudio.Product.BuildTools
) else if "%1" == "2015" (
set BUILD_VS_YEAR=2015
) else if "%1" == "packagename" (