waf.bat (2064B)
1 @echo off 2 3 rem from issue #964 4 5 Setlocal EnableDelayedExpansion 6 7 rem Check Windows Version 8 set TOKEN=tokens=3* 9 ver | findstr /i "5\.0\." > nul 10 if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* 11 ver | findstr /i "5\.1\." > nul 12 if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* 13 ver | findstr /i "5\.2\." > nul 14 if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* 15 ver | findstr /i "6\.0\." > nul 16 if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=2* 17 ver | findstr /i "6\.1\." > nul 18 if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=2* 19 20 rem Start calculating PYTHON and PYTHON_DIR 21 set PYTHON= 22 set PYTHON_DIR= 23 24 Setlocal EnableDelayedExpansion 25 26 set PYTHON_DIR_OK=FALSE 27 set REGPATH= 28 29 for %%i in (3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.7 2.6 2.5) do ( 30 for %%j in (HKCU HKLM) do ( 31 for %%k in (SOFTWARE\Wow6432Node SOFTWARE) do ( 32 for %%l in (Python\PythonCore IronPython) do ( 33 set REG_PYTHON_EXE=python.exe 34 if "%%l"=="IronPython" ( 35 set REG_PYTHON_EXE=ipy.exe 36 ) 37 38 @echo on 39 40 set REGPATH=%%j\%%k\%%l\%%i\InstallPath 41 rem @echo Regpath !REGPATH! 42 REG QUERY "!REGPATH!" /ve 1>nul 2>nul 43 if !ERRORLEVEL! equ 0 ( 44 for /F "%TOKEN% delims= " %%A IN ('REG QUERY "!REGPATH!" /ve') do @set REG_PYTHON_DIR=%%B 45 if exist !REG_PYTHON_DIR! ( 46 IF NOT "!REG_PYTHON_DIR:~-1!"=="\" SET REG_PYTHON_DIR=!REG_PYTHON_DIR!\ 47 set REG_PYTHON=!REG_PYTHON_DIR!!REG_PYTHON_EXE! 48 rem set PYTHON_DIR_OK=TRUE 49 if "!PYTHON_DIR_OK!"=="FALSE" ( 50 set PYTHON_DIR=!REG_PYTHON_DIR! 51 set PYTHON=!REG_PYTHON! 52 set PYTHON_DIR_OK=TRUE 53 ) 54 55 rem set PYTHON_DIR_OK=FALSE 56 rem @echo Find !REG_PYTHON! 57 rem goto finished 58 ) 59 ) 60 61 echo off 62 63 ) 64 rem for l 65 ) 66 rem for k 67 ) 68 rem for j 69 ) 70 rem for i 71 72 73 74 :finished 75 76 Endlocal & SET PYTHON_DIR=%PYTHON_DIR% & SET PYTHON=%PYTHON% 77 78 if "%PYTHON_DIR%" == "" ( 79 rem @echo No Python dir 80 set PYTHON=python 81 goto running 82 ) 83 84 rem @echo %PYTHON_DIR% 85 86 if "%PYTHON%" == "" ( 87 rem @echo No Python 88 set PYTHON=python 89 goto running 90 ) 91 92 :running 93 94 @echo Using %PYTHON% 95 96 "%PYTHON%" -x "%~dp0waf" %* 97 Endlocal 98 exit /b %ERRORLEVEL%