summaryrefslogtreecommitdiffstats
path: root/BaseTools/BinPipWrappers
diff options
context:
space:
mode:
authorYunhua Feng <fengyunhua@byosoft.com.cn>2021-02-04 16:36:10 +0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-02-22 09:51:17 +0000
commit078400ee15e7b250e4dfafd840c2e0c19835e16b (patch)
tree5388c26bdba4122d018dfab5aca55f3ba457c06e /BaseTools/BinPipWrappers
parent44ae214591e58af468eacb7b873eaa0bc187c4fa (diff)
downloadedk2-078400ee15e7b250e4dfafd840c2e0c19835e16b.tar.gz
edk2-078400ee15e7b250e4dfafd840c2e0c19835e16b.tar.bz2
edk2-078400ee15e7b250e4dfafd840c2e0c19835e16b.zip
BaseTools: Fix BrotliCompress run issue on Linux
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3210 BrotliCompress changed, but not completely on Linux Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Yuwei Chen <yuwei.chen@intel.com> Signed-off-by: Yunhua Feng <fengyunhua@byosoft.com.cn> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Diffstat (limited to 'BaseTools/BinPipWrappers')
-rwxr-xr-xBaseTools/BinPipWrappers/PosixLike/BrotliCompress28
1 files changed, 27 insertions, 1 deletions
diff --git a/BaseTools/BinPipWrappers/PosixLike/BrotliCompress b/BaseTools/BinPipWrappers/PosixLike/BrotliCompress
index 663860bb3e..426f2a2ef1 100755
--- a/BaseTools/BinPipWrappers/PosixLike/BrotliCompress
+++ b/BaseTools/BinPipWrappers/PosixLike/BrotliCompress
@@ -8,6 +8,10 @@
QLT="-q 9 -w 22"
ARGS=
+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##*/}
+
while test $# -gt 0
do
case $1 in
@@ -31,4 +35,26 @@ do
shift
done
-exec Brotli $QLT $ARGS
+
+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" $QLT $ARGS
+ fi
+elif [ -e "$dir/../../Source/C/bin/$cmd" ]
+then
+ exec "$dir/../../Source/C/bin/$cmd" $QLT $ARGS
+else
+ echo "Unable to find the real '$cmd' to run"
+ echo "This message was printed by"
+ echo " $0"
+ exit 127
+fi