From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.17683.1612683052658553402 for ; Sat, 06 Feb 2021 23:30:52 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: bob.c.feng@intel.com) IronPort-SDR: VJ7O8Bxex8umTwf+li0BBRPEBZL6ppeE0Qz416gtqY2OC17bbBfo5QiKnTe2rOI7HjlndzPaZe bT4V6tp5ZzJw== X-IronPort-AV: E=McAfee;i="6000,8403,9887"; a="243090445" X-IronPort-AV: E=Sophos;i="5.81,159,1610438400"; d="scan'208";a="243090445" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Feb 2021 23:30:51 -0800 IronPort-SDR: Ey/iIrhw0yxzCf/uC306P80OR4CzwmyhGadUZiJKdPItrNZdmK/x/DO/m9Bh3BEbppbZJtLA1g iFF4WOPrbMcg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,159,1610438400"; d="scan'208";a="418135646" Received: from shwdepsi1121.ccr.corp.intel.com ([10.239.158.32]) by fmsmga002.fm.intel.com with ESMTP; 06 Feb 2021 23:30:49 -0800 From: "Bob Feng" To: devel@edk2.groups.io Cc: Liming Gao , Yuwei Chen Subject: [Patch 1/1] BaseTools/ECC: Add antlr version check Date: Sun, 7 Feb 2021 15:30:44 +0800 Message-Id: <20210207073044.1848-1-bob.c.feng@intel.com> X-Mailer: git-send-email 2.29.1.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3201 ECC requires a specific version of Antlr installed. This patch is to add a checker in the Ecc command wrapper to check if the ECC required version of antlr is installed. Signed-off-by: Bob Feng Cc: Liming Gao Cc: Yuwei Chen --- BaseTools/BinWrappers/PosixLike/Ecc | 22 +++++++++++++++++++++- BaseTools/BinWrappers/WindowsLike/Ecc.bat | 14 +++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/BaseTools/BinWrappers/PosixLike/Ecc b/BaseTools/BinWrappers/PosixLike/Ecc index 15edf52106bd..8a3539b8a604 100755 --- a/BaseTools/BinWrappers/PosixLike/Ecc +++ b/BaseTools/BinWrappers/PosixLike/Ecc @@ -9,6 +9,26 @@ 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") cmd=${full_cmd##*/} export PYTHONPATH="$dir/../../Source/Python${PYTHONPATH:+:"$PYTHONPATH"}" -exec "${python_exe:-python}" -m $cmd.EccMain "$@" +pyver=`${python_exe} -c "import sys; print(sys.version_info.major)"` +if [ $pyver == 3 ]; then + echo "Checking the antlr4-python3-runtime version..." + antlrver=`pip3 list | grep antlr4-python3-runtime` + echo "Installed antlr4-python3-runtime version $antlrver" + if [ "$antlrver"="antlr4-python3-runtime (4.7.1)" ]; then + exec "${python_exe:-python}" -m $cmd.EccMain "$@" + else + echo "Please install antlr4-python3-runtime=4.7.1 for ECC usage" + fi +else + echo "Checking the antlr-python-runtime version..." + antlrver=`pip list | grep antlr-python-runtime` + echo "Installed antlr-python-runtime version $antlrver" + if [ "$antlrver"="antlr-python-runtime (3.0.1)" ]; then + exec "${python_exe:-python}" -m $cmd.EccMain "$@" + else + echo "Please install antlr-python-runtime=3.0.1 for ECC usage" + fi +fi + diff --git a/BaseTools/BinWrappers/WindowsLike/Ecc.bat b/BaseTools/BinWrappers/WindowsLike/Ecc.bat index ba1a15b3b8b0..bd739ef8e2b9 100644 --- a/BaseTools/BinWrappers/WindowsLike/Ecc.bat +++ b/BaseTools/BinWrappers/WindowsLike/Ecc.bat @@ -1,4 +1,16 @@ @setlocal @set ToolName=%~n0% @set PYTHONPATH=%PYTHONPATH%;%BASE_TOOLS_PATH%\Source\Python -@%PYTHON_COMMAND% -m %ToolName%.EccMain %* +@for /f ' %%i in ('%PYTHON_COMMAND% -c "import sys; print(sys.version_info.major)"') do @set pyver=%%i +@IF %pyver%==3 ( +@echo Checking the antlr4-python3-runtime version... +@for /f "tokens=2" %%i in ('%PYTHON_COMMAND% -m pip list -l ^| findstr antlr4-python3-runtime') do @set antlr4version=%%i +@echo Installed antlr4-python3-runtime version %antlr4version% +@IF "%antlr4version%"=="4.7.1" (@%PYTHON_COMMAND% -m %ToolName%.EccMain %*) ELSE (Echo Please install antlr4-python3-runtime=4.7.1 for ECC usage) +) ELSE ( +@echo Checking the antlr-python-runtime version... +@for /f "tokens=2" %%i in ('%PYTHON_COMMAND% -m pip list -l ^| findstr antlr-python-runtime') do set antlr3version=%%i +@echo Installed antlr-python-runtime version %antlr3version% +@IF "%antlr3version%"=="3.0.1" (@%PYTHON_COMMAND% -m %ToolName%.EccMain %*) ELSE (Echo Please install antlr-python-runtime=3.0.1 for ECC usage) +) + -- 2.29.1.windows.1