Utilities written in Python may depend on external (preinstalled) Python
packages; for example, Ecc depends on "antlr_python_runtime-3.0.1". Such
packages need not be installed system-wide, as long as they are reachable
through PYTHONPATH. Therefore we shouldn't overwrite the user's PYTHONPATH
with "BaseTools/Source/Python"; instead, we should prepend the latter to
the former.
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=896
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
- Use `python2` executable if it exists, to avoid breakage on systems (such as
Arch Linux) where `python` is Python 3.
- Quote all references to `$0`, for safety when located in a directory
containing spaces in its name.
- Use the `exec` shell command to avoid leaving the shell wrapper in the
process table when invoking the actual build tool.
- Use `"$@"` rather than `$*` to pass arguments through directly rather than
concatenating to a string, and then string-splitting and glob-expanding its
contents.
- Use `$BASH_SOURCE` in preference to `$0` (which is only guaranteed to be
process name, *not* source path).
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Charles Duffy <chaduffy@cisco.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19694 6f19259b-4bc3-4df7-8a09-765794883524