public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Liming Gao <liming.gao@intel.com>
To: edk2-devel@lists.01.org
Cc: Yonghong Zhu <yonghong.zhu@intel.com>,
	Michael Kinney <michael.d.kinney@intel.com>,
	Erik Bjorge <erik.c.bjorge@intel.com>
Subject: [Patch 4/4] BaseTools: Update toolsetup.bat to set PYTHONPATH env to run python source
Date: Tue, 13 Sep 2016 00:03:30 +0800	[thread overview]
Message-ID: <1473696210-6264-5-git-send-email-liming.gao@intel.com> (raw)
In-Reply-To: <1473696210-6264-1-git-send-email-liming.gao@intel.com>

When python tool exe doesn't exist, toolsetup.bat will set up PYTHONPATH,
and set python tool dos script directory into system PATH.

Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
---
 BaseTools/toolsetup.bat | 101 +++++++++++++++++++++---------------------------
 1 file changed, 44 insertions(+), 57 deletions(-)

diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat
index a64938d..6d416d4 100755
--- a/BaseTools/toolsetup.bat
+++ b/BaseTools/toolsetup.bat
@@ -247,39 +247,38 @@ if defined FORCE_REBUILD goto check_build_environment
 if defined REBUILD goto check_build_environment
 if not exist "%EDK_TOOLS_PATH%" goto check_build_environment
 
-IF NOT EXIST "%EDK_TOOLS_BIN%\BootSectImage.exe" goto check_build_environment
+IF NOT EXIST "%EDK_TOOLS_BIN%\BootSectImage.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\EfiLdrImage.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\EfiRom.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenBootSector.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFfs.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFv.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenPage.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenSec.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\GenVtf.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\Split.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\TianoCompress.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\VfrCompile.exe" goto check_c_tools
+IF NOT EXIST "%EDK_TOOLS_BIN%\VolInfo.exe" goto check_c_tools
+
+goto check_python_tools
+
+:check_c_tools
+  echo.
+  echo Binary C tools are missing. They are requried to be built from BaseTools Source.
+  echo.
+
+:check_python_tools
 IF NOT EXIST "%EDK_TOOLS_BIN%\build.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\EfiLdrImage.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\EfiRom.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenBootSector.exe" goto check_build_environment
 IF NOT EXIST "%EDK_TOOLS_BIN%\GenFds.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenFfs.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenFv.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenPage.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenSec.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\GenVtf.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\Split.exe" goto check_build_environment
 IF NOT EXIST "%EDK_TOOLS_BIN%\TargetTool.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\TianoCompress.exe" goto check_build_environment
 IF NOT EXIST "%EDK_TOOLS_BIN%\Trim.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\VfrCompile.exe" goto check_build_environment
-IF NOT EXIST "%EDK_TOOLS_BIN%\VolInfo.exe" goto check_build_environment
 
 goto end
 
 :check_build_environment
-
-  if not defined FORCE_REBUILD (
-    echo.
-    echo Rebuilding of tools is not required.  Binaries of the latest,
-    echo tested versions of the tools have been tested and included in the
-    echo EDK II repository.
-    echo.
-    echo If you really want to build the tools, use the ForceRebuild option.
-    echo.
-    goto end
-  )
+  if defined BASETOOLS_PYTHON_SOURCE goto VisualStudioAvailable
 
   if not defined BASE_TOOLS_PATH (
      if not exist "Source\C\Makefile" (
@@ -289,10 +288,6 @@ goto end
        set BASE_TOOLS_PATH=%CD%
      )
   )
-  set PATH=%BASE_TOOLS_PATH%\Bin\Win32;%PATH%
-
-  set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python
-  set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH%
 
   if not defined PYTHON_HOME (
     if defined PYTHONHOME (
@@ -307,36 +302,30 @@ goto end
 
   @REM We have Python, now test for FreezePython application
   if not defined PYTHON_FREEZER_PATH (
-    @REM see if we can find FreezePython.ex
-    if exist "%PYTHON_HOME%\Tools\cx_Freeze-3.0.3\FreezePython.exe" (
-      set PYTHON_FREEZER_PATH=%PYTHON_HOME%\Tools\cx_Freeze-3.0.3
-    ) 
-    if exist "%PYTHON_HOME%\Tools\cx_Freeze\FreezePython.exe" (
-      set PYTHON_FREEZER_PATH=%PYTHON_HOME%\Tools\cx_Freeze
-    ) 
-    if exist "C:\cx_Freeze\FreezePython.exe" (
-        set PYTHON_FREEZER_PATH=C:\cx_Freeze
-    )
-    if exist "C:\cx_Freeze-3.0.3" (
-        set PYTHON_FREEZER_PATH=C:\cx_Freeze-3.0.3
-    )
-    if not defined PYTHON_FREEZER_PATH (
-      echo.
-      echo !!! WARNING !!! Will not be able to compile Python programs to .exe
-      echo Will setup environment to run Python scripts directly.
-      echo.
-      set "PATH=%BASETOOLS_PYTHON_SOURCE%\Trim;%PATH%"
-      set "PATH=%BASETOOLS_PYTHON_SOURCE%\GenFds;%PATH%"
-      set "PATH=%BASETOOLS_PYTHON_SOURCE%\build;%PATH%"
-      set PATHEXT=%PATHEXT%;.py
-    )
+    echo.
+    echo !!! WARNING !!! PYTHON_FREEZER_PATH environment variable is not set.
+    echo Setup environment to run Python scripts directly.
+    echo.
+    set "PATH=%PATH%;%BASE_TOOLS_PATH%\BinWrappers\WindowsLike"
   )
+
+  set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python
+  set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH%
   
-  echo BASE_TOOLS_PATH     = %BASE_TOOLS_PATH%
-  echo     PYTHON_PATH     = %PYTHON_PATH%
-  echo PYTHON_FREEZER_PATH = %PYTHON_FREEZER_PATH%
+  echo                PATH = %PATH%
+  echo         PYTHON_HOME = %PYTHON_HOME%
+  echo          PYTHONPATH = %PYTHONPATH%
+  if defined PYTHON_FREEZER_PATH (
+    echo PYTHON_FREEZER_PATH = %PYTHON_FREEZER_PATH%
+  )
   echo.
 
+:VisualStudioAvailable
+  if not defined FORCE_REBUILD (
+    if not defined REBUILD (
+      goto end
+    )
+  )
   call "%EDK_TOOLS_PATH%\get_vsvars.bat"
   if not defined VCINSTALLDIR (
     @echo.
@@ -344,8 +333,6 @@ goto end
     @echo.
     goto end
   )
-
-:VisualStudioAvailable
   if not defined FORCE_REBUILD goto IncrementalBuild
 
 :CleanAndBuild
-- 
2.8.0.windows.1



  parent reply	other threads:[~2016-09-12 16:05 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-12 16:03 [Patch 0/4] Add support for running python tools from source on Windows Liming Gao
2016-09-12 16:03 ` [Patch 1/4] BaseTools: Add Windows batch files to run python tool from Source Liming Gao
2016-09-12 23:59   ` Bjorge, Erik C
2016-09-12 16:03 ` [Patch 2/4] BaseTools: Update python tool to call external tools with shell true mode Liming Gao
2016-09-13  0:00   ` Bjorge, Erik C
2016-09-12 16:03 ` [Patch 3/4] BaseTools: Update Python Makefile not to depend on PYTHON_FREEZER_PATH Liming Gao
2016-09-13  0:00   ` Bjorge, Erik C
2016-09-12 16:03 ` Liming Gao [this message]
2016-09-13  0:13   ` [Patch 4/4] BaseTools: Update toolsetup.bat to set PYTHONPATH env to run python source Bjorge, Erik C
2016-09-21  2:50 ` [Patch 0/4] Add support for running python tools from source on Windows Zhu, Yonghong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1473696210-6264-5-git-send-email-liming.gao@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox