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