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
next prev 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