summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMargen67 <Margen67@users.noreply.github.com>2022-03-09 07:07:46 -0800
committerRick Gibbed <rick@gibbed.us>2022-07-21 08:31:35 -0500
commit74d83e4af8208417c8af33d5fbab87ab1606f15a (patch)
tree23b2808941045bb98bf0209b44116986135bf949
parent6ff312afb1aa5a5d4eebc3c9361095a702dfeb2a (diff)
Python/xenia-build/xb fixes
Use variable for Python version to make upgrading easier. xb.bat: Update copyright date. Add candidate paths. xb.ps1 Properly use found python executable. More consistency with .bat. Don't spew unnecessary errors, etc. EOF newline.
-rw-r--r--xb.bat19
-rw-r--r--xb.ps123
-rwxr-xr-xxenia-build6
3 files changed, 28 insertions, 20 deletions
diff --git a/xb.bat b/xb.bat
index bd4deaf94..9b828cb12 100644
--- a/xb.bat
+++ b/xb.bat
@@ -1,5 +1,5 @@
@ECHO OFF
-REM Copyright 2015 Ben Vanik. All Rights Reserved.
+REM Copyright 2022 Ben Vanik. All Rights Reserved.
SET "DIR=%~dp0"
@@ -7,10 +7,12 @@ REM ============================================================================
REM Environment Validation
REM ============================================================================
+SET "PYTHON_MINIMUM_VERSION[0]=3"
+SET "PYTHON_MINIMUM_VERSION[1]=6"
CALL :check_python
IF %_RESULT% NEQ 0 (
ECHO.
- ECHO Python 3.6+ must be installed and on PATH:
+ ECHO Python %PYTHON_MINIMUM_VERSION[0]%.%PYTHON_MINIMUM_VERSION[1]%+ must be installed and on PATH:
ECHO https://www.python.org/
GOTO :eof
)
@@ -33,9 +35,12 @@ SETLOCAL ENABLEDELAYEDEXPANSION
SET FOUND_PATH=""
-SET "CANDIDATE_PATHS[0]=C:\python37\python.exe"
-SET "CANDIDATE_PATHS[1]=C:\python36\python.exe"
-SET OUTPUT_INDEX=2
+SET "CANDIDATE_PATHS[0]=C:\python310\python.exe"
+SET "CANDIDATE_PATHS[1]=C:\python39\python.exe"
+SET "CANDIDATE_PATHS[2]=C:\python38\python.exe"
+SET "CANDIDATE_PATHS[3]=C:\python37\python.exe"
+SET "CANDIDATE_PATHS[4]=C:\python%PYTHON_MINIMUM_VERSION[0]%%PYTHON_MINIMUM_VERSION[1]%\python.exe"
+SET OUTPUT_INDEX=5
FOR /F "usebackq delims=" %%L IN (`2^>NUL where python3`) DO (
IF %%~zL NEQ 0 (
@@ -70,9 +75,9 @@ IF "%FOUND_PATH%"=="" (
GOTO :eof
)
-CMD /C ""%FOUND_PATH%" -c "import sys; sys.exit(1 if not sys.version_info[:2] ^>= (3, 6) else 0)"
+CMD /C ""%FOUND_PATH%" -c "import sys; sys.exit(1 if not sys.version_info[:2] ^>= (%PYTHON_MINIMUM_VERSION[0]%, %PYTHON_MINIMUM_VERSION[1]%) else 0)"
IF %ERRORLEVEL% NEQ 0 (
- ECHO ERROR: Python version mismatch, not at least 3.6.
+ ECHO ERROR: Python version mismatch, not at least %PYTHON_MINIMUM_VERSION[0]%.%PYTHON_MINIMUM_VERSION[1]%.
ECHO Found Python executable was "%FOUND_PATH%".
ENDLOCAL & SET _RESULT=1
GOTO :eof
diff --git a/xb.ps1 b/xb.ps1
index 9e24cf384..0b58cc309 100644
--- a/xb.ps1
+++ b/xb.ps1
@@ -5,20 +5,23 @@ function Write-FatalError($message) {
Exit 1
}
-$pythonPath = Get-Command python | Select-Object -ExpandProperty Definition
-
-# Check for 'python3' if 'python' isn't found
-if ([string]::IsNullOrEmpty($pythonPath)) {
- $pythonPath = Get-Command python3 | Select-Object -ExpandProperty Definition
+$pythonExecutables = 'python', 'python3'
+foreach ($pythonExecutable in $pythonExecutables) {
+ if (!$pythonPath) {
+ $pythonPath = powershell -NoLogo -NonInteractive "(Get-Command -ErrorAction SilentlyContinue $pythonexecutable).Definition" # Hack to not give command suggestion
+ } else {
+ break
+ }
}
# Neither found, error and exit
-if ([string]::IsNullOrEmpty($pythonPath)) {
- Write-FatalError "ERROR: no Python executable found on PATH.`nMake sure you can run 'python' or 'python3' in a Command Prompt."
+$pythonMinimumVer = 3,6
+if (!$pythonPath) {
+ Write-FatalError "ERROR: Python $($pythonMinimumVer[0]).$($pythonMinimumVer[1])+ must be installed and on PATH:`nhttps://www.python.org/"
}
-python -c "import sys; sys.exit(1 if not sys.version_info[:2] >= (3, 4) else 0)"
+& $pythonPath -c "import sys; sys.exit(1 if not sys.version_info[:2] >= ($($pythonMinimumVer[0]), $($pythonMinimumVer[1])) else 0)"
if ($LASTEXITCODE -gt 0) {
- Write-FatalError "ERROR: Python version mismatch, not at least 3.4.`nFound Python executable was $($pythonPath)"
+ Write-FatalError "ERROR: Python version mismatch, not at least $($pythonMinimumVer[0]).$($pythonMinimumVer[1]).`nFound Python executable was `"$($pythonPath)`"."
}
-python "$($PSScriptRoot)/xenia-build" $args \ No newline at end of file
+& $pythonPath "$($PSScriptRoot)/xenia-build" $args
diff --git a/xenia-build b/xenia-build
index 6bb3cb8b0..c521a9504 100755
--- a/xenia-build
+++ b/xenia-build
@@ -134,8 +134,9 @@ def main():
print('')
# Check python version.
- if not sys.version_info[:2] >= (3, 6):
- print('ERROR: Python 3.6+ must be installed and on PATH')
+ python_minimum_ver=3,6
+ if not sys.version_info[:2] >= (python_minimum_ver[0], python_minimum_ver[1]):
+ print('ERROR: Python ', python_minimum_ver[0], '.', python_minimum_ver[1], '+ must be installed and on PATH', sep='')
sys.exit(1)
# Grab Visual Studio version and execute shell to set up environment.
@@ -1830,4 +1831,3 @@ class DevenvCommand(Command):
if __name__ == '__main__':
main()
-