From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mx.groups.io with SMTP id smtpd.web10.10003.1612876509261174551 for ; Tue, 09 Feb 2021 05:15:09 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=BDM75Thr; spf=pass (domain: nuviainc.com, ip: 209.85.221.49, mailfrom: leif@nuviainc.com) Received: by mail-wr1-f49.google.com with SMTP id h12so5385070wrw.6 for ; Tue, 09 Feb 2021 05:15:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=DH/MjFgPicUSgYw6sNoE5sn+vyUFeiNknjjbrIqtGm0=; b=BDM75ThrGDR6Q6mkFruYoScwPCthUYohiC3PMXlgsLgrIyjHSQC2K7+ZNpHsKDOMrd xf7WlKy1eH+PMQOktjifmLq5U9IZ61iwGyq3Szfa+bwm0OT6NnWkMoe39gAaHKfNn4kG aFRjFcX7pnN+uOlWwNwfXJnphXuY47ZRWPzMoFYHDqrmE3Aj1d9T4OPhmKQ3AhyGVTOT 51Yo7w5TKlEelYIGQ/le0zwHAfOvZbYJC6+oFJ9/XNT1fgmMqh1newXi5iXTIA4uocoT Bx/hWNo4Iw+MOHwHsoYxUlNrVlHsJxLtVLWLUxbG7mt6B4XfTTbYGVKz7vIoQaHDddDY GEVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=DH/MjFgPicUSgYw6sNoE5sn+vyUFeiNknjjbrIqtGm0=; b=MauX6tBCgmA5xxwMSOL9/tTxHBy5jkde1fdcEVJpfWW4zXeJRWNK72QJuE7GI5tmYN 4TnEFnVm9KYSKVLxMK9xPn5jvGOa4Lc0jWps+0SQVMHsNUvwGdf/AaDAH00xZGVrCNQE WwDC+MwD6zCO+k2+A7yJn4RgnXe3ImbDW8P/djmQbCpqo8fmHPhaonXe8R4yjn4XXneB Db9RWCVZO7N6tWPlvpTnkOg0bBAe2EakE/0vNO3M0uag/xyRqMGE766ynFrVk2IGlHge qV+AeYXq1VlyDRKQMC1wa8pvR1z0oCua0C2Forc+5pso4jIxor6sfpYJB6sJbl6bHUOC 8Xgw== X-Gm-Message-State: AOAM533ygMlhhNi/GRu8JYZ1P+oafeKA7CHJprDuJENVtQ1AITt0XczT kcyR2JusZ8XiB8s8ikzs56fNQLjhNtn5TRozDMoAYwyVn7BF4uQWH3/Y2htmq2n78nWRdLK4c1W XwEWVMzIrLsZjy5xAK48qAO7jNxT3b3b3gYK3K00nNnkuxJP//eKiEaixa+m2Nwek9w== X-Google-Smtp-Source: ABdhPJxvlGz0TzPMSTO9k0sVKa7jPlg8kXJWo1OW6qVYbaZ3Fjde2KI9tEVo2qOZlOxu4qkiP0ECQA== X-Received: by 2002:a5d:660d:: with SMTP id n13mr10457117wru.225.1612876507089; Tue, 09 Feb 2021 05:15:07 -0800 (PST) Return-Path: Received: from vanye (cpc1-cmbg19-2-0-cust915.5-4.cable.virginm.net. [82.27.183.148]) by smtp.gmail.com with ESMTPSA id g15sm17772365wrx.1.2021.02.09.05.15.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Feb 2021 05:15:06 -0800 (PST) Date: Tue, 9 Feb 2021 13:15:04 +0000 From: "Leif Lindholm" To: devel@edk2.groups.io, bob.c.feng@intel.com Cc: "Chen, Christine" , "matthewfcarlson@gmail.com" , Liming Gao Subject: Re: [edk2-devel] [PATCH v5 1/1] BaseTools: Use pip module if available, CI uses it by default Message-ID: <20210209131504.GH1664@vanye> References: <20210209005033.596-1-matthewfcarlson@gmail.com> <20210209005033.596-2-matthewfcarlson@gmail.com> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Bob, Something has gone wrong with the line endings on BaseTools/BuildEnv, breaking the build on posix systems: /work/git/edk2$ . edksetup.sh -bash: /work/git/orion/edk2/BaseTools/BuildEnv: line 214: syntax error near unexpected token `}' -bash: /work/git/orion/edk2/BaseTools/BuildEnv: line 214: `}' If I run dos2unix on BaseTools/BuildEnv, it works again. Can you address please? / Leif On Tue, Feb 09, 2021 at 03:25:30 +0000, Bob Feng wrote: > Matt, > > I helped to convert the endling character for those PosixLike scripts and created a PR https://github.com/tianocore/edk2/pull/1415 > > Liming, > > I verified the your pervious comments on this patch. > > Thanks, > Bob > > -----Original Message----- > From: Chen, Christine > Sent: Tuesday, February 9, 2021 10:32 AM > To: matthewfcarlson@gmail.com; devel@edk2.groups.io > Cc: Feng, Bob C ; Liming Gao > Subject: RE: [PATCH v5 1/1] BaseTools: Use pip module if available, CI uses it by default > > Reviewed-by: Yuwei Chen > > > -----Original Message----- > > From: matthewfcarlson@gmail.com > > Sent: Tuesday, February 9, 2021 8:51 AM > > To: devel@edk2.groups.io > > Cc: Feng, Bob C ; Liming Gao > > ; Chen, Christine ; > > Matthew Carlson > > Subject: [PATCH v5 1/1] BaseTools: Use pip module if available, CI uses it by > > default > > > > From: Matthew Carlson > > > > 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 > > > > Signed-off-by: Matthew Carlson > > --- > > .pytool/CISettings.py | 51 > > +++++++++++++++----- > > 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 > > +++++++++++ > > BaseTools/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 > > +++++ > > BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys > > | 12 +++++ > > BaseTools/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 > > +++++ > > BaseTools/{BinWrappers => > > BinPipWrappers}/PosixLike/posix_path_env.yaml | 21 ++++---- > > 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 ++ > > BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat > > | 3 ++ > > BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat > > | 1 + > > BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat > > | 3 ++ > > BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat | > > 3 ++ > > BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat > > | 1 + > > BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat > > | 3 ++ > > BaseTools/BinPipWrappers/WindowsLike/Split.bat | 3 > > ++ > > BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat | > > 3 ++ > > BaseTools/BinPipWrappers/WindowsLike/Trim.bat | 3 > > ++ > > BaseTools/BinPipWrappers/WindowsLike/UPT.bat | 3 > > ++ > > BaseTools/BinPipWrappers/WindowsLike/build.bat | 3 > > ++ > > BaseTools/{BinWrappers => > > BinPipWrappers}/WindowsLike/win_build_tools_path_env.yaml | 3 +- > > BaseTools/BinWrappers/PosixLike/posix_path_env.yaml | > > 1 + > > BaseTools/BinWrappers/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 ++++++++ > > pip-requirements.txt | 1 + > > 55 files changed, 745 insertions(+), 25 deletions(-) > > > > diff --git a/.pytool/CISettings.py b/.pytool/CISettings.py index > > e6c5ac700ab2..5f71eca1992e 100644 > > --- a/.pytool/CISettings.py > > +++ b/.pytool/CISettings.py > > @@ -22,16 +22,24 @@ class Settings(CiBuildSettingsManager, > > UpdateSettingsManager, SetupSettingsManag > > self.ActualTargets = [] self.ActualArchitectures = [] > > self.ActualToolChainTag = ""+ self.UseBuiltInBaseTools = None+ > > self.ActualScopes = None # > > ################################################################ > > ####################### # # Extra CmdLine > > configuration # # > > ################################################################ > > ####################### # def AddCommandLineOptions(self, > > parserObj):- pass+ group = > > parserObj.add_mutually_exclusive_group()+ group.add_argument("- > > force_piptools", "--fpt", dest="force_piptools", action="store_true", > > default=False, help="Force the system to use pip tools")+ > > group.add_argument("-no_piptools", "--npt", dest="no_piptools", > > action="store_true", default=False, help="Force the system to not use pip > > tools") def RetrieveCommandLineOptions(self, args):- pass+ > > super().RetrieveCommandLineOptions(args)+ if args.force_piptools:+ > > self.UseBuiltInBaseTools = True+ if args.no_piptools:+ > > self.UseBuiltInBaseTools = False # > > ################################################################ > > ####################### # # Default Support for this Ci > > Build #@@ -128,19 +136,38 @@ class > > Settings(CiBuildSettingsManager, UpdateSettingsManager, > > SetupSettingsManag > > def GetActiveScopes(self): ''' return tuple containing scopes that > > should be active for this process '''- scopes = ("cibuild", "edk2-build", > > "host-based-test")+ if self.ActualScopes is None:+ scopes = > > ("cibuild", "edk2-build", "host-based-test") - self.ActualToolChainTag = > > shell_environment.GetBuildVars().GetValue("TOOL_CHAIN_TAG", "")+ > > self.ActualToolChainTag = > > shell_environment.GetBuildVars().GetValue("TOOL_CHAIN_TAG", "") - if > > GetHostInfo().os.upper() == "LINUX" and > > self.ActualToolChainTag.upper().startswith("GCC"):- if "AARCH64" in > > self.ActualArchitectures:- scopes += ("gcc_aarch64_linux",)- if > > "ARM" in self.ActualArchitectures:- scopes += ("gcc_arm_linux",)- > > if "RISCV64" in self.ActualArchitectures:- scopes += > > ("gcc_riscv64_unknown",)+ is_linux = GetHostInfo().os.upper() == > > "LINUX" - return scopes+ if self.UseBuiltInBaseTools is None:+ > > is_linux = GetHostInfo().os.upper() == "LINUX"+ # try and import the > > pip module for basetools+ try:+ import edk2basetools+ > > self.UseBuiltInBaseTools = True+ except ImportError:+ > > self.UseBuiltInBaseTools = False+ pass++ if > > self.UseBuiltInBaseTools == True:+ scopes += ('pipbuild-unix',) if > > is_linux else ('pipbuild-win',)+ logging.warning("Using Pip Tools > > based BaseTools")+ else:+ logging.warning("Falling back to > > using in-tree BaseTools")++ if is_linux and > > self.ActualToolChainTag.upper().startswith("GCC"):+ if "AARCH64" in > > self.ActualArchitectures:+ scopes += ("gcc_aarch64_linux",)+ > > if "ARM" in self.ActualArchitectures:+ scopes += > > ("gcc_arm_linux",)+ if "RISCV64" in self.ActualArchitectures:+ > > scopes += ("gcc_riscv64_unknown",)+ self.ActualScopes = scopes+ > > return self.ActualScopes def GetRequiredSubmodules(self): ''' return > > iterable containing RequiredSubmodule objects.diff --git > > a/BaseTools/BinPipWrappers/PosixLike/AmlToC > > b/BaseTools/BinPipWrappers/PosixLike/AmlToC > > new file mode 100755 > > index 000000000000..1dd28e966288 > > --- /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 000000000000..a08cbd8de5c5 > > --- /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 000000000000..663860bb3e57 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..598728915095 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..df75e43f9ec1 > > --- /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 000000000000..b27e84eaa210 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..9d143c7fc6c2 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..366a268802c4 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..b55352ae4c79 > > --- /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 000000000000..9d143c7fc6c2 > > --- /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 000000000000..9d143c7fc6c2 > > --- /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 000000000000..aca2f3a6fe2a > > --- /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 000000000000..068364070518 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..9d143c7fc6c2 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..0bd14ee03872 > > --- /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 000000000000..068364070518 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..0945d86d9209 > > --- /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 000000000000..9d143c7fc6c2 > > --- /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/BinWrappers/PosixLike/posix_path_env.yaml > > b/BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml > > similarity index 74% > > copy from BaseTools/BinWrappers/PosixLike/posix_path_env.yaml > > copy to BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml > > index 8b32e010bb1d..830670305c0c 100644 > > --- a/BaseTools/BinWrappers/PosixLike/posix_path_env.yaml > > +++ b/BaseTools/BinPipWrappers/PosixLike/posix_path_env.yaml > > @@ -1,10 +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": "global-nix",- "flags": ["set_path"]-}+## @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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..16a0a799a43b > > --- /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 000000000000..481b5ac47d24 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..34c43ac7fc99 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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.b > > at > > +b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys. > > bat > > new file mode 100644 > > index 000000000000..cdc2e3ea373d > > --- /dev/null > > +++ > > b/BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.b > > at > > @@ -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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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 000000000000..d347d6484467 > > --- /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/BinWrappers/WindowsLike/win_build_tools_path_env.yaml > > +b/BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.ya > > ml > > similarity index 70% > > copy from > > BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml > > copy to > > BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml > > index 83f5856e75c6..9fdbe1bcb06b 100644 > > --- a/BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml > > +++ > > b/BaseTools/BinPipWrappers/WindowsLike/win_build_tools_path_env.yaml > > @@ -5,6 +5,7 @@ > > # SPDX-License-Identifier: BSD-2-Clause-Patent ## {- "scope": "global-win",+ > > "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 8b32e010bb1d..99529235ec9a 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 83f5856e75c6..43da76f354e5 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 5943bb9ef908..275f4c5901aa 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 68c984ed0e4d..80754e763c5a > > 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 000000000000..56f5b0ff027b > > --- /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 61ebf4ae09bc..4b5256ab6e93 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%diff -- > > git a/pip-requirements.txt b/pip-requirements.txt > > index 0fecd37f2a83..aea2e6ece431 100644 > > --- a/pip-requirements.txt > > +++ b/pip-requirements.txt > > @@ -14,4 +14,5 @@ > > edk2-pytool-library==0.10.* edk2-pytool-extensions~=0.13.3+edk2- > > basetools==0.1.2 antlr4-python3-runtime==4.7.1-- > > 2.29.0.vfs.0.0 > > > > > >