summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python
diff options
context:
space:
mode:
authorLiming Gao <liming.gao@intel.com>2016-09-12 15:22:49 +0800
committerLiming Gao <liming.gao@intel.com>2016-09-21 10:49:15 +0800
commit71f5913eb9127305dc6ec63936c3c283975d86c0 (patch)
tree7b920b74c3340d214c148c32ed373f6c3b8ead05 /BaseTools/Source/Python
parentbf069759efc4d3b76c66bf992c49d673bb292410 (diff)
downloadedk2-71f5913eb9127305dc6ec63936c3c283975d86c0.tar.gz
edk2-71f5913eb9127305dc6ec63936c3c283975d86c0.tar.bz2
edk2-71f5913eb9127305dc6ec63936c3c283975d86c0.zip
BaseTools: Update python tool to call external tools with shell true mode
Python tool may run from source as the dos batch files. So, update python code to call external tools with shell true mode. 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> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
Diffstat (limited to 'BaseTools/Source/Python')
-rw-r--r--BaseTools/Source/Python/Common/VpdInfoFile.py7
-rw-r--r--BaseTools/Source/Python/build/build.py3
2 files changed, 6 insertions, 4 deletions
diff --git a/BaseTools/Source/Python/Common/VpdInfoFile.py b/BaseTools/Source/Python/Common/VpdInfoFile.py
index cc79ee275f..d45fb4cf03 100644
--- a/BaseTools/Source/Python/Common/VpdInfoFile.py
+++ b/BaseTools/Source/Python/Common/VpdInfoFile.py
@@ -233,14 +233,15 @@ def CallExtenalBPDGTool(ToolPath, VpdFileName):
OutputBinFileName = os.path.join(OutputDir, "%s.bin" % BaseName)
try:
- PopenObject = subprocess.Popen([ToolPath,
+ PopenObject = subprocess.Popen(' '.join([ToolPath,
'-o', OutputBinFileName,
'-m', OutputMapFileName,
'-q',
'-f',
- VpdFileName],
+ VpdFileName]),
stdout=subprocess.PIPE,
- stderr= subprocess.PIPE)
+ stderr= subprocess.PIPE,
+ shell=True)
except Exception, X:
EdkLogger.error("BPDG", BuildToolError.COMMAND_FAILURE, ExtraData="%s" % (str(X)))
(out, error) = PopenObject.communicate()
diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index be02119042..b003c67403 100644
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -268,12 +268,13 @@ def LaunchCommand(Command, WorkingDir):
if not isinstance(Command, list):
if platform.system() != 'Windows':
Command = Command.split()
+ Command = ' '.join(Command)
Proc = None
EndOfProcedure = None
try:
# launch the command
- Proc = Popen(Command, stdout=PIPE, stderr=PIPE, env=os.environ, cwd=WorkingDir, bufsize=-1)
+ Proc = Popen(Command, stdout=PIPE, stderr=PIPE, env=os.environ, cwd=WorkingDir, bufsize=-1, shell=True)
# launch two threads to read the STDOUT and STDERR
EndOfProcedure = Event()