From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.4394.1624433016573655187 for ; Wed, 23 Jun 2021 00:23:37 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 220681063; Wed, 23 Jun 2021 00:23:31 -0700 (PDT) Received: from e120189.arm.com (unknown [10.57.78.245]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7FEF03F719; Wed, 23 Jun 2021 00:23:29 -0700 (PDT) From: "PierreGondois" To: devel@edk2.groups.io, Sean Brogan , Bret Barkelew , Michael D Kinney , Liming Gao , Sami Mujawar Subject: [PATCH v1 1/4] .pytool/EccCheck: Locate BaseTools dir with EDK_TOOLS_PATH Date: Wed, 23 Jun 2021 08:22:47 +0100 Message-Id: <20210623072250.3277-2-Pierre.Gondois@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210623072250.3277-1-Pierre.Gondois@arm.com> References: <20210623072250.3277-1-Pierre.Gondois@arm.com> From: Pierre Gondois The BaseTools directory is currently being located as a sub-directory of the WORKSPACE env var. This might not be true in other environments. Cf EDKII Build Specification, s4.1.3 "Build Process Restrictions": There is no restriction on the location of the EDK_TOOLS_PATH, it may be located within a directory identified as the WORKSPACE directory, or in any other location that is accessible on the development workstation. Locate the BaseTools directory using EDK_TOOLS_PATH instead. Cc: Sean Brogan Cc: Bret Barkelew Cc: Michael D Kinney Cc: Liming Gao Cc: Sami Mujawar Signed-off-by: Pierre Gondois --- .pytool/Plugin/EccCheck/EccCheck.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.pytool/Plugin/EccCheck/EccCheck.py b/.pytool/Plugin/EccCheck/EccCheck.py index eee1ff7a77b5..bb93446441de 100644 --- a/.pytool/Plugin/EccCheck/EccCheck.py +++ b/.pytool/Plugin/EccCheck/EccCheck.py @@ -1,5 +1,6 @@ # @file EccCheck.py # +# Copyright (c) 2021, Arm Limited. All rights reserved.
# Copyright (c) 2020, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent ## @@ -61,16 +62,17 @@ class EccCheck(ICiBuildPlugin): # - output_stream the StringIO output stream from this plugin via logging def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None): edk2_path = Edk2pathObj.WorkspacePath - python_path = os.path.join(edk2_path, "BaseTools", "Source", "Python") + basetools_path = environment.GetValue("EDK_TOOLS_PATH") + python_path = os.path.join(basetools_path, "Source", "Python") env = shell_environment.GetEnvironment() env.set_shell_var('PYTHONPATH', python_path) env.set_shell_var('WORKSPACE', edk2_path) self.ECC_PASS = True - self.ApplyConfig(pkgconfig, edk2_path, packagename) + self.ApplyConfig(pkgconfig, edk2_path, basetools_path, packagename) modify_dir_list = self.GetModifyDir(packagename) patch = self.GetDiff(packagename) ecc_diff_range = self.GetDiffRange(patch, packagename, edk2_path) - self.GenerateEccReport(modify_dir_list, ecc_diff_range, edk2_path) + self.GenerateEccReport(modify_dir_list, ecc_diff_range, edk2_path, basetools_path) ecc_log = os.path.join(edk2_path, "Ecc.log") self.RevertCode() if self.ECC_PASS: @@ -176,11 +178,11 @@ class EccCheck(ICiBuildPlugin): return comment_range def GenerateEccReport(self, modify_dir_list: List[str], ecc_diff_range: Dict[str, List[Tuple[int, int]]], - edk2_path: str) -> None: + edk2_path: str, basetools_path: str) -> None: ecc_need = False ecc_run = True - config = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "config.ini") - exception = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "exception.xml") + config = os.path.join(basetools_path, "Source", "Python", "Ecc", "config.ini") + exception = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml") report = os.path.join(edk2_path, "Ecc.csv") for modify_dir in modify_dir_list: target = os.path.join(edk2_path, modify_dir) @@ -234,7 +236,7 @@ class EccCheck(ICiBuildPlugin): log.writelines(all_line) return - def ApplyConfig(self, pkgconfig: Dict[str, List[str]], edk2_path: str, pkg: str) -> None: + def ApplyConfig(self, pkgconfig: Dict[str, List[str]], edk2_path: str, basetools_path: str, pkg: str) -> None: if "IgnoreFiles" in pkgconfig: for a in pkgconfig["IgnoreFiles"]: a = os.path.join(edk2_path, pkg, a) @@ -251,7 +253,7 @@ class EccCheck(ICiBuildPlugin): if "ExceptionList" in pkgconfig: exception_list = pkgconfig["ExceptionList"] - exception_xml = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "exception.xml") + exception_xml = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml") try: logging.info("Appending exceptions") self.AppendException(exception_list, exception_xml) -- 2.17.1