]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/toolsetup.bat
DynamicTablesPkg: Configuration Manager Protocol
[mirror_edk2.git] / BaseTools / toolsetup.bat
index 811b23051fd9a55280d9f54cd13df39c6deca76e..5629bbaa41da03d6a1ab768c0e7a813c3faf7ce2 100755 (executable)
@@ -270,7 +270,7 @@ goto check_build_environment
 \r
 :check_c_tools\r
   echo.\r
-  echo !!! ERROR !!! Binary C tools are missing. They are requried to be built from BaseTools Source.\r
+  echo !!! ERROR !!! Binary C tools are missing. They are required to be built from BaseTools Source.\r
   echo.\r
 \r
 :check_build_environment\r
@@ -286,43 +286,77 @@ goto check_build_environment
   )\r
 \r
 :defined_python\r
+if defined PYTHON_COMMAND if not defined PYTHON3_ENABLE (\r
+  goto check_python_available\r
+)\r
 if defined PYTHON3_ENABLE (\r
   if "%PYTHON3_ENABLE%" EQU "TRUE" (\r
-    set PYTHON=py -3\r
-    %PYTHON% --version >NUL 2>&1\r
-    if %ERRORLEVEL% NEQ 0 (\r
+    set PYTHON_COMMAND=py -3\r
+    goto check_python_available\r
+  ) else (\r
+    goto check_python2\r
+  )\r
+)\r
+if not defined PYTHON_COMMAND if not defined PYTHON3_ENABLE (\r
+  set PYTHON_COMMAND=py -3\r
+  py -3 %BASE_TOOLS_PATH%\Tests\PythonTest.py >PythonCheck.txt 2>&1\r
+  setlocal enabledelayedexpansion\r
+  set /p PythonCheck=<"PythonCheck.txt"\r
+  del PythonCheck.txt\r
+  if "!PythonCheck!" NEQ "TRUE" (\r
+    if not defined PYTHON_HOME if not defined PYTHONHOME (\r
+      endlocal\r
+      set PYTHON_COMMAND=\r
       echo.\r
-      echo !!! ERROR !!!  PYTHON3 is not installed or added to environment variables\r
+      echo !!! ERROR !!! Binary python tools are missing.\r
+      echo PYTHON_COMMAND, PYTHON3_ENABLE or PYTHON_HOME\r
+      echo Environment variable is not set successfully.\r
+      echo They is required to build or execute the python tools.\r
       echo.\r
       goto end\r
     ) else (\r
-      goto check_freezer_path\r
+      goto check_python2\r
     )\r
-  ) \r
+  ) else (\r
+    goto check_freezer_path\r
+  )\r
 )\r
 \r
+:check_python2\r
+endlocal\r
 if defined PYTHON_HOME (\r
   if EXIST "%PYTHON_HOME%" (\r
-    set PYTHON=%PYTHON_HOME%\python.exe\r
-    goto check_freezer_path\r
-    )\r
+    set PYTHON_COMMAND=%PYTHON_HOME%\python.exe\r
+    goto check_python_available\r
   )\r
+)\r
 if defined PYTHONHOME (\r
   if EXIST "%PYTHONHOME%" (\r
     set PYTHON_HOME=%PYTHONHOME%\r
-    set PYTHON=%PYTHON_HOME%\python.exe\r
+    set PYTHON_COMMAND=%PYTHON_HOME%\python.exe\r
+    goto check_python_available\r
+  )\r
+)\r
+echo.\r
+echo !!! ERROR !!!  PYTHON_HOME is not defined or The value of this variable does not exist\r
+echo.\r
+goto end\r
+:check_python_available\r
+%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Tests\PythonTest.py >PythonCheck.txt 2>&1\r
+  setlocal enabledelayedexpansion\r
+  set /p PythonCheck=<"PythonCheck.txt"\r
+  del PythonCheck.txt\r
+  if "!PythonCheck!" NEQ "TRUE" (\r
+    echo.\r
+    echo ! ERROR !  "%PYTHON_COMMAND%" is not installed or added to environment variables\r
+    echo.\r
+    goto end\r
+  ) else (\r
     goto check_freezer_path\r
-    )\r
   )\r
-  \r
-  echo.\r
-  echo !!! ERROR !!! Binary python tools are missing.\r
-  echo PYTHON_HOME or PYTHON3_ENABLE environment variable is not set successfully.\r
-  echo PYTHON_HOME or PYTHON3_ENABLE is required to build or execute the python tools.\r
-  echo.\r
-  goto end\r
 \r
 :check_freezer_path\r
+  endlocal\r
   if defined BASETOOLS_PYTHON_SOURCE goto print_python_info\r
   set "PATH=%BASE_TOOLS_PATH%\BinWrappers\WindowsLike;%PATH%"\r
   set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python\r
@@ -330,14 +364,12 @@ if defined PYTHONHOME (
 \r
 :print_python_info\r
   echo                PATH = %PATH%\r
-  if "%PYTHON3_ENABLE%" EQU "TRUE" (\r
+  if defined PYTHON3_ENABLE if "%PYTHON3_ENABLE%" EQU "TRUE" (\r
     echo      PYTHON3_ENABLE = %PYTHON3_ENABLE%\r
-    echo             PYTHON3 = %PYTHON%\r
+    echo             PYTHON3 = %PYTHON_COMMAND%\r
   ) else (\r
-    echo      PYTHON3_ENABLE = %PYTHON3_ENABLE%\r
-    if defined PYTHON_HOME (\r
-      echo         PYTHON_HOME = %PYTHON_HOME%\r
-    )\r
+    echo      PYTHON3_ENABLE = FALSE\r
+    echo      PYTHON_COMMAND = %PYTHON_COMMAND%\r
   )\r
   echo          PYTHONPATH = %PYTHONPATH%\r
   echo.\r