[Bf-blender-cvs] [f26c36c96b5] master: make.bat: unify python detection

Ray Molenkamp noreply at git.blender.org
Tue Jan 25 17:19:07 CET 2022


Commit: f26c36c96b56b1cce159fb86c22bf657a094ad99
Author: Ray Molenkamp
Date:   Tue Jan 25 09:19:03 2022 -0700
Branches: master
https://developer.blender.org/rBf26c36c96b56b1cce159fb86c22bf657a094ad99

make.bat: unify python detection

Several sub commands tried on their own
to locate python, given I wanted to look
in several locations for a broader libdir
compatibility this is best done in a
central location.

Python 3.9 is still preferred, but if
3.10-3.12 are available that be accepted
as well.

note: this is about the python version
make.bat uses to run various python helper
scripts, this change has no influence on
the python version blender itself uses.

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

M	build_files/windows/find_dependencies.cmd
M	build_files/windows/format.cmd
M	build_files/windows/icons.cmd
M	build_files/windows/icons_geom.cmd
M	build_files/windows/update_sources.cmd
M	make.bat

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

diff --git a/build_files/windows/find_dependencies.cmd b/build_files/windows/find_dependencies.cmd
index 9fa3b156a4f..fec2bd2e752 100644
--- a/build_files/windows/find_dependencies.cmd
+++ b/build_files/windows/find_dependencies.cmd
@@ -3,7 +3,32 @@ for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
 for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
 for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
 for %%X in (git.exe) do (set GIT=%%~$PATH:X)
+REM For python, default on 39 but if that does not exist also check
+REM the 310,311 and 312 folders to see if those are there, it checks
+REM this far ahead to ensure good lib folder compatiblity in the future.
 set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\311\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\312\bin\python.exe
+if EXIST %PYTHON% (
+	goto detect_python_done
+)
+
+if NOT EXIST %PYTHON% (
+    echo Warning: Python not found, there is likely an issue with the library folder
+    set PYTHON=""
+)
+
+:detect_python_done
 if NOT "%verbose%" == "" (
 	echo svn    : "%SVN%"
 	echo cmake  : "%CMAKE%"
@@ -11,7 +36,3 @@ if NOT "%verbose%" == "" (
 	echo git    : "%GIT%"
 	echo python : "%PYTHON%"
 )
-if "%CMAKE%" == "" (
-	echo Cmake not found in path, required for building, exiting...
-	exit /b 1
-)
diff --git a/build_files/windows/format.cmd b/build_files/windows/format.cmd
index d5003c9f8d8..95440cb1818 100644
--- a/build_files/windows/format.cmd
+++ b/build_files/windows/format.cmd
@@ -9,17 +9,11 @@ exit /b 1
 :detect_done
 echo found clang-format in %CF_PATH%
 
-if EXIST %PYTHON% (
-    set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-echo python not found in lib folder
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 set FORMAT_PATHS=%BLENDER_DIR%\source\tools\utils_maintenance\clang_format_paths.py
 
 REM The formatting script expects clang-format to be in the current PATH.
diff --git a/build_files/windows/icons.cmd b/build_files/windows/icons.cmd
index d51b27d8953..9390ccf827c 100644
--- a/build_files/windows/icons.cmd
+++ b/build_files/windows/icons.cmd
@@ -1,18 +1,8 @@
-if EXIST "%PYTHON%" (
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-if EXIST %PYTHON% (
-    goto detect_python_done
-)
-
-echo python not found at %PYTHON%
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 call "%~dp0\find_inkscape.cmd"
 
 if EXIST "%INKSCAPE_BIN%" (
diff --git a/build_files/windows/icons_geom.cmd b/build_files/windows/icons_geom.cmd
index 18312daf35b..4cb3bf5b4df 100644
--- a/build_files/windows/icons_geom.cmd
+++ b/build_files/windows/icons_geom.cmd
@@ -1,18 +1,8 @@
-if EXIST %PYTHON% (
-    goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
 
-set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
-if EXIST %PYTHON% (
-    goto detect_python_done
-)
-
-echo python not found at %PYTHON%
-exit /b 1
-
-:detect_python_done
-echo found python (%PYTHON%)
-
 call "%~dp0\find_blender.cmd"
 
 if EXIST "%BLENDER_BIN%" (
diff --git a/build_files/windows/update_sources.cmd b/build_files/windows/update_sources.cmd
index f8fbd383090..f99ce43f40f 100644
--- a/build_files/windows/update_sources.cmd
+++ b/build_files/windows/update_sources.cmd
@@ -1,10 +1,7 @@
-if EXIST %PYTHON% (
-	goto detect_python_done
+if NOT EXIST %PYTHON% (
+    echo python not found, required for this operation
+    exit /b 1
 )
-
-echo python not found in lib folder
-exit /b 1
-
 :detect_python_done
 
 REM Use -B to avoid writing __pycache__ in lib directory and causing update conflicts.
diff --git a/make.bat b/make.bat
index d55b2cfd1b3..ff8059b0754 100644
--- a/make.bat
+++ b/make.bat
@@ -13,6 +13,9 @@ if errorlevel 1 goto EOF
 call "%BLENDER_DIR%\build_files\windows\parse_arguments.cmd" %*
 if errorlevel 1 goto EOF
 
+call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
+if errorlevel 1 goto EOF
+
 REM if it is one of the convenience targets and BLENDER_BIN is set
 REM skip compiler detection
 if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
@@ -21,9 +24,6 @@ if "%ICONS%%ICONS_GEOM%%DOC_PY%" == "1" (
 	)
 )
 
-call "%BLENDER_DIR%\build_files\windows\find_dependencies.cmd"
-if errorlevel 1 goto EOF
-
 if "%BUILD_SHOW_HASHES%" == "1" (
 	call "%BLENDER_DIR%\build_files\windows\show_hashes.cmd"
 	goto EOF
@@ -88,6 +88,11 @@ if "%DOC_PY%" == "1" (
 	goto EOF
 )
 
+if "%CMAKE%" == "" (
+	echo Cmake not found in path, required for building, exiting...
+	exit /b 1
+)
+
 echo Building blender with VS%BUILD_VS_YEAR% for %BUILD_ARCH% in %BUILD_DIR%
 
 call "%BLENDER_DIR%\build_files\windows\check_libraries.cmd"



More information about the Bf-blender-cvs mailing list