From 1534b6228b0932d745bf6ec9fd4cb010800b92f2 Mon Sep 17 00:00:00 2001 From: Matthew Carlson Date: Tue, 9 Feb 2021 08:50:33 +0800 Subject: BaseTools: Use pip module if available, CI uses it by default Use the new edk2-basetools pip module. Includes a helpful message in setup to let users know which has been selected. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Reviewed-by: Bob Feng Reviewed-by: Yuwei Signed-off-by: Matthew Carlson --- BaseTools/BinPipWrappers/PosixLike/AmlToC | 14 +++++++++ BaseTools/BinPipWrappers/PosixLike/BPDG | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/BrotliCompress | 34 ++++++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/DevicePath | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/Ecc | 13 +++++++++ BaseTools/BinPipWrappers/PosixLike/EfiRom | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/GenCrc32 | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/GenDepex | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/GenFds | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/GenFfs | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/GenFv | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/GenFw | 29 ++++++++++++++++++ .../BinPipWrappers/PosixLike/GenPatchPcdTable | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/GenSec | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/GenerateCapsule | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/LzmaCompress | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress | 19 ++++++++++++ BaseTools/BinPipWrappers/PosixLike/PatchPcdValue | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign | 12 ++++++++ .../PosixLike/Rsa2048Sha256GenerateKeys | 12 ++++++++ .../BinPipWrappers/PosixLike/Rsa2048Sha256Sign | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/Split | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/TargetTool | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/TianoCompress | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/Trim | 13 +++++++++ BaseTools/BinPipWrappers/PosixLike/UPT | 12 ++++++++ BaseTools/BinPipWrappers/PosixLike/VfrCompile | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/VolInfo | 29 ++++++++++++++++++ BaseTools/BinPipWrappers/PosixLike/build | 12 ++++++++ .../BinPipWrappers/PosixLike/posix_path_env.yaml | 11 +++++++ BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/BPDG.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/Ecc.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/GenFds.bat | 3 ++ .../WindowsLike/GenPatchPcdTable.bat | 3 ++ .../BinPipWrappers/WindowsLike/GenerateCapsule.bat | 1 + .../BinPipWrappers/WindowsLike/PatchPcdValue.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat | 3 ++ .../WindowsLike/Rsa2048Sha256GenerateKeys.bat | 1 + .../WindowsLike/Rsa2048Sha256Sign.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/Split.bat | 3 ++ .../BinPipWrappers/WindowsLike/TargetTool.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/Trim.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/UPT.bat | 3 ++ BaseTools/BinPipWrappers/WindowsLike/build.bat | 3 ++ .../WindowsLike/win_build_tools_path_env.yaml | 11 +++++++ .../BinWrappers/PosixLike/posix_path_env.yaml | 1 + .../WindowsLike/win_build_tools_path_env.yaml | 1 + BaseTools/BuildEnv | 14 +++++++-- BaseTools/Scripts/PatchCheck.py | 1 + BaseTools/Source/Python/README.md | 29 ++++++++++++++++++ BaseTools/toolsetup.bat | 19 ++++++++++++ 53 files changed, 714 insertions(+), 2 deletions(-) create mode 100755 BaseTools/BinPipWrappers/PosixLike/AmlToC create mode 100755 BaseTools/BinPipWrappers/PosixLike/BPDG create mode 100755 BaseTools/BinPipWrappers/PosixLike/BrotliCompress create mode 100755 BaseTools/BinPipWrappers/PosixLike/DevicePath create mode 100755 BaseTools/BinPipWrappers/PosixLike/Ecc create mode 100755 BaseTools/BinPipWrappers/PosixLike/EfiRom create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenCrc32 create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenDepex create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenFds create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenFfs create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenFv create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenFw create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenSec create mode 100755 BaseTools/BinPipWrappers/PosixLike/GenerateCapsule create mode 100755 BaseTools/BinPipWrappers/PosixLike/LzmaCompress create mode 100755 BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress create mode 100755 BaseTools/BinPipWrappers/PosixLike/PatchPcdValue create mode 100755 BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign create mode 100755 BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys create mode 100755 BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign create mode 100755 BaseTools/BinPipWrappers/PosixLike/Split create mode 100755 BaseTools/BinPipWrappers/PosixLike/TargetTool create mode 100755 BaseTools/BinPipWrappers/PosixLike/TianoCompress create mode 100755 BaseTools/BinPipWrappers/PosixLike/Trim create mode 100755 BaseTools/BinPipWrappers/PosixLike/UPT create mode 100755 BaseTools/BinPipWrappers/PosixLike/VfrCompile create mode 100755 BaseTools/BinPipWrappers/PosixLike/VolInfo create mode 100755 BaseTools/BinPipWrappers/PosixLike/build create mode 100644 BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml create mode 100644 BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/BPDG.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Ecc.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/GenFds.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Split.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Trim.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/UPT.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/build.bat create mode 100644 BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml create mode 100644 BaseTools/Source/Python/README.md (limited to 'BaseTools') diff --git a/BaseTools/BinPipWrappers/PosixLike/AmlToC b/BaseTools/BinPipWrappers/PosixLike/AmlToC new file mode 100755 index 0000000000..1dd28e9662 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/AmlToC @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +exe=$(basename "$full_cmd") + +export PYTHONPATH="$dir/../../Source/Python${PYTHONPATH:+:"$PYTHONPATH"}" +exec "${python_exe:-python}" "$dir/../../Source/Python/$exe/$exe.py" "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/BPDG b/BaseTools/BinPipWrappers/PosixLike/BPDG new file mode 100755 index 0000000000..a08cbd8de5 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/BPDG @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.EccMain "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/BrotliCompress b/BaseTools/BinPipWrappers/PosixLike/BrotliCompress new file mode 100755 index 0000000000..663860bb3e --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/BrotliCompress @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# This script will exec Brotli tool with -e/-d options. +# +# Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +QLT="-q 9 -w 22" +ARGS= + +while test $# -gt 0 +do + case $1 in + -e) + ;; + -d) + ARGS+="$1 " + ;; + -o|-g) + ARGS+="$1 $2 " + shift + ;; + -q) + QLT="$1 $2 " + shift + ;; + *) + ARGS+="$1 " + ;; + esac + shift +done + +exec Brotli $QLT $ARGS diff --git a/BaseTools/BinPipWrappers/PosixLike/DevicePath b/BaseTools/BinPipWrappers/PosixLike/DevicePath new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/DevicePath @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/Ecc b/BaseTools/BinPipWrappers/PosixLike/Ecc new file mode 100755 index 0000000000..5987289150 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Ecc @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +export PYTHONPATH="$dir/../../Source/Python${PYTHONPATH:+:"$PYTHONPATH"}" +exec "${python_exe:-python}" -m $cmd.EccMain "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/EfiRom b/BaseTools/BinPipWrappers/PosixLike/EfiRom new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/EfiRom @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenCrc32 b/BaseTools/BinPipWrappers/PosixLike/GenCrc32 new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenCrc32 @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenDepex b/BaseTools/BinPipWrappers/PosixLike/GenDepex new file mode 100755 index 0000000000..df75e43f9e --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenDepex @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.AutoGen.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/GenFds b/BaseTools/BinPipWrappers/PosixLike/GenFds new file mode 100755 index 0000000000..b27e84eaa2 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenFds @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/GenFfs b/BaseTools/BinPipWrappers/PosixLike/GenFfs new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenFfs @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenFv b/BaseTools/BinPipWrappers/PosixLike/GenFv new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenFv @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenFw b/BaseTools/BinPipWrappers/PosixLike/GenFw new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenFw @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable b/BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable new file mode 100755 index 0000000000..9d143c7fc6 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/GenSec b/BaseTools/BinPipWrappers/PosixLike/GenSec new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenSec @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/GenerateCapsule b/BaseTools/BinPipWrappers/PosixLike/GenerateCapsule new file mode 100755 index 0000000000..366a268802 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/GenerateCapsule @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.Capsule.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/LzmaCompress b/BaseTools/BinPipWrappers/PosixLike/LzmaCompress new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/LzmaCompress @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress b/BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress new file mode 100755 index 0000000000..b55352ae4c --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# +# This script will exec LzmaCompress tool with --f86 option that enables converter for x86 code. +# +# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
+# Copyright (c) 2012, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +for arg; do + case $arg in + -e|-d) + set -- "$@" --f86 + break + ;; + esac +done + +exec LzmaCompress "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/PatchPcdValue b/BaseTools/BinPipWrappers/PosixLike/PatchPcdValue new file mode 100755 index 0000000000..9d143c7fc6 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/PatchPcdValue @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign b/BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign new file mode 100755 index 0000000000..9d143c7fc6 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys b/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys new file mode 100755 index 0000000000..aca2f3a6fe --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.Rsa2048Sha256Sign.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign b/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign new file mode 100755 index 0000000000..ead26cb369 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" \ No newline at end of file diff --git a/BaseTools/BinPipWrappers/PosixLike/Split b/BaseTools/BinPipWrappers/PosixLike/Split new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Split @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/TargetTool b/BaseTools/BinPipWrappers/PosixLike/TargetTool new file mode 100755 index 0000000000..9d143c7fc6 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/TargetTool @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/TianoCompress b/BaseTools/BinPipWrappers/PosixLike/TianoCompress new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/TianoCompress @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/Trim b/BaseTools/BinPipWrappers/PosixLike/Trim new file mode 100755 index 0000000000..0bd14ee038 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/Trim @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=$(basename "$full_cmd") + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" + diff --git a/BaseTools/BinPipWrappers/PosixLike/UPT b/BaseTools/BinPipWrappers/PosixLike/UPT new file mode 100755 index 0000000000..ead26cb369 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/UPT @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" \ No newline at end of file diff --git a/BaseTools/BinPipWrappers/PosixLike/VfrCompile b/BaseTools/BinPipWrappers/PosixLike/VfrCompile new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/VfrCompile @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/VolInfo b/BaseTools/BinPipWrappers/PosixLike/VolInfo new file mode 100755 index 0000000000..0945d86d92 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/VolInfo @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +dir=$(dirname "$full_cmd") +cmd=${full_cmd##*/} + +if [ -n "$WORKSPACE" ] && [ -e "$WORKSPACE/Conf/BaseToolsCBinaries" ] +then + exec "$WORKSPACE/Conf/BaseToolsCBinaries/$cmd" +elif [ -n "$WORKSPACE" ] && [ -e "$EDK_TOOLS_PATH/Source/C" ] +then + if [ ! -e "$EDK_TOOLS_PATH/Source/C/bin/$cmd" ] + then + echo "BaseTools C Tool binary was not found ($cmd)" + echo "You may need to run:" + echo " make -C $EDK_TOOLS_PATH/Source/C" + else + exec "$EDK_TOOLS_PATH/Source/C/bin/$cmd" "$@" + fi +elif [ -e "$dir/../../Source/C/bin/$cmd" ] +then + exec "$dir/../../Source/C/bin/$cmd" "$@" +else + echo "Unable to find the real '$cmd' to run" + echo "This message was printed by" + echo " $0" + exit 127 +fi + diff --git a/BaseTools/BinPipWrappers/PosixLike/build b/BaseTools/BinPipWrappers/PosixLike/build new file mode 100755 index 0000000000..9d143c7fc6 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/build @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +#python `dirname $0`/RunToolFromSource.py `basename $0` $* + +# If a ${PYTHON_COMMAND} command is available, use it in preference to python +if command -v ${PYTHON_COMMAND} >/dev/null 2>&1; then + python_exe=${PYTHON_COMMAND} +fi + +full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here +cmd=${full_cmd##*/} + +exec "${python_exe:-python}" -m edk2basetools.$cmd.$cmd "$@" diff --git a/BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml b/BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml new file mode 100644 index 0000000000..eb1db9eb25 --- /dev/null +++ b/BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml @@ -0,0 +1,11 @@ +## @file +# Set this folder on the path for all linux builds +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +{ + "scope": "pipbuild-unix", + "override_id": "binwrappers", + "flags": ["set_path"] +} diff --git a/BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat b/BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/BPDG.bat b/BaseTools/BinPipWrappers/WindowsLike/BPDG.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/BPDG.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Ecc.bat b/BaseTools/BinPipWrappers/WindowsLike/Ecc.bat new file mode 100644 index 0000000000..16a0a799a4 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Ecc.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.EccMain %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat b/BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat new file mode 100644 index 0000000000..481b5ac47d --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.AutoGen.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/GenFds.bat b/BaseTools/BinPipWrappers/WindowsLike/GenFds.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/GenFds.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat b/BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat b/BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat new file mode 100644 index 0000000000..34c43ac7fc --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat @@ -0,0 +1 @@ +@%PYTHON_COMMAND% -m edk2basetools.Capsule.GenerateCapsule %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat b/BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat b/BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat new file mode 100644 index 0000000000..cdc2e3ea37 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat @@ -0,0 +1 @@ +@%PYTHON_COMMAND% -m edk2basetools.Rsa2048Sha256Sign.Rsa2048Sha256GenerateKeys %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Split.bat b/BaseTools/BinPipWrappers/WindowsLike/Split.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Split.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat b/BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/Trim.bat b/BaseTools/BinPipWrappers/WindowsLike/Trim.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/Trim.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/UPT.bat b/BaseTools/BinPipWrappers/WindowsLike/UPT.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/UPT.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/build.bat b/BaseTools/BinPipWrappers/WindowsLike/build.bat new file mode 100644 index 0000000000..d347d64844 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/build.bat @@ -0,0 +1,3 @@ +@setlocal +@set ToolName=%~n0% +@%PYTHON_COMMAND% -m edk2basetools.%ToolName%.%ToolName% %* diff --git a/BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml b/BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml new file mode 100644 index 0000000000..9fdbe1bcb0 --- /dev/null +++ b/BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml @@ -0,0 +1,11 @@ +## @file +# Add this folder to the path on Windows +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +{ + "scope": "pipbuild-win", + "override_id": "binwrappers", + "flags": ["set_path"] +} diff --git a/BaseTools/BinWrappers/PosixLike/posix_path_env.yaml b/BaseTools/BinWrappers/PosixLike/posix_path_env.yaml index 8b32e010bb..99529235ec 100644 --- a/BaseTools/BinWrappers/PosixLike/posix_path_env.yaml +++ b/BaseTools/BinWrappers/PosixLike/posix_path_env.yaml @@ -5,6 +5,7 @@ # SPDX-License-Identifier: BSD-2-Clause-Patent ## { + "id": "binwrappers", "scope": "global-nix", "flags": ["set_path"] } diff --git a/BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml b/BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml index 83f5856e75..43da76f354 100644 --- a/BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml +++ b/BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml @@ -5,6 +5,7 @@ # SPDX-License-Identifier: BSD-2-Clause-Patent ## { + "id": "binwrappers", "scope": "global-win", "flags": ["set_path"] } diff --git a/BaseTools/BuildEnv b/BaseTools/BuildEnv index 5943bb9ef9..8d283e10c0 100755 --- a/BaseTools/BuildEnv +++ b/BaseTools/BuildEnv @@ -46,7 +46,7 @@ RestorePreviousConfiguration() { done fi fi - + PREVIOUS_CONF_FILE=$CONF_PATH/BuildEnv.sh if [ -e $PREVIOUS_CONF_FILE ] then @@ -198,7 +198,17 @@ AddEdkToolsToPath() { EDK_TOOLS_PATH_BIN=`GetEdkToolsPathBinDirectory` - AddDirToStartOfPath $EDK_TOOLS_PATH/BinWrappers/PosixLike + # check if the edk2basetools pip package is available + if $PYTHON_COMMAND -c "import edk2basetools" &> /dev/null; then + # if it is, use the pip version of the wrappers + echo "Using Pip Basetools" + AddDirToStartOfPath $EDK_TOOLS_PATH/BinPipWrappers/PosixLike + else + echo "Using EDK2 in-source Basetools" + AddDirToStartOfPath $EDK_TOOLS_PATH/BinWrappers/PosixLike + fi + + AddDirToStartOfPath $EDK_TOOLS_PATH_BIN } diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py index 68c984ed0e..80754e763c 100755 --- a/BaseTools/Scripts/PatchCheck.py +++ b/BaseTools/Scripts/PatchCheck.py @@ -359,6 +359,7 @@ class GitDiffCheck: self.force_notabs = True if self.filename.endswith('.sh') or \ self.filename.startswith('BaseTools/BinWrappers/PosixLike/') or \ + self.filename.startswith('BaseTools/BinPipWrappers/PosixLike/') or \ self.filename.startswith('BaseTools/Bin/CYGWIN_NT-5.1-i686/') or \ self.filename == 'BaseTools/BuildEnv': # diff --git a/BaseTools/Source/Python/README.md b/BaseTools/Source/Python/README.md new file mode 100644 index 0000000000..8c4d9e73bb --- /dev/null +++ b/BaseTools/Source/Python/README.md @@ -0,0 +1,29 @@ +# Edk2 Basetools + +This folder has traditionally held the source of Python based tools used by EDK2. +The official repo this source has moved to https://github.com/tianocore/edk2-basetools. +This folder will remain in the tree until the next stable release (expected 202102). +There is a new folder under Basetools `BinPipWrappers` that uses the pip module rather than this tree for Basetools. +By adding the scope `pipbuild-win` or `pipbuild-unix` (depending on your host system), the SDE will use the +`BinPipWrappers` instead of the regular `BinWrappers`. + +## Why Move It? + +The discussion is on the mailing list. The RFC is here: https://edk2.groups.io/g/rfc/topic/74009714#270 +The benefits allow for the Basetools project to be used separately from EDK2 itself as well as offering it in a +globally accessible manner. +This makes it much easier to build a module using Basetools. +Separating the Basetools into their own repo allows for easier CI and contribution process. +Additional pros, cons, and process can be found on the mailing list. + +## How Do I Install It? + +By default, EDK2 is tied to and tested with a specific version of the Basetools through `pip-requirements.txt`. +You can simply run: + +```bash +pip install -r pip-requirements.txt +``` + +This will install the required module, thought we strongly suggest setting up a virtual environment. +Additionally, you can also install a local clone of the Basetools as well as a specific git commit. diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat index 61ebf4ae09..4b5256ab6e 100755 --- a/BaseTools/toolsetup.bat +++ b/BaseTools/toolsetup.bat @@ -393,12 +393,31 @@ goto end goto check_freezer_path ) + + :check_freezer_path endlocal + + %PYTHON_COMMAND% -c "import edk2basetools" >NUL 2>NUL + if %ERRORLEVEL% EQU 0 ( + goto use_pip_basetools + ) else ( + goto use_builtin_basetools + ) + +:use_builtin_basetools + @echo Using EDK2 in-source Basetools if defined BASETOOLS_PYTHON_SOURCE goto print_python_info set "PATH=%BASE_TOOLS_PATH%\BinWrappers\WindowsLike;%PATH%" set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH% + goto print_python_info + +:use_pip_basetools + @echo Using Pip Basetools + set "PATH=%BASE_TOOLS_PATH%\BinPipWrappers\WindowsLike;%PATH%" + set BASETOOLS_PYTHON_SOURCE=edk2basetools + goto print_python_info :print_python_info echo PATH = %PATH% -- cgit v1.2.3