From b59e6fdae2545b45c36c8c5373f4b858fb83c8cd Mon Sep 17 00:00:00 2001 From: Marvin Ha?user Date: Wed, 1 Feb 2023 06:47:50 -0800 Subject: .pytool/Plugin/EccCheck: Add PACKAGES_PATH support REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4326 EccBuild currently assumes all packages reside in WORKSPACE. However, this is obviously not the case for many setups. Most notably, Ext4Pkg is located in edk2-platforms/Features and thus cannot be in WORKSPACE in any reasonable setup. Use Edk2Path to locate the package in WORKSPACE and PACKAGES_PATH. Cc: Sean Brogan Cc: Michael Kubacki Cc: Michael D Kinney Cc: Liming Gao Cc: Pedro Falcato Signed-off-by: Marvin H?user Acked-by: Pedro Falcato Reviewed-by: Michael Kubacki --- .pytool/Plugin/EccCheck/EccCheck.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.pytool/Plugin/EccCheck/EccCheck.py b/.pytool/Plugin/EccCheck/EccCheck.py index 4fbc67765f..7235fcb55c 100644 --- a/.pytool/Plugin/EccCheck/EccCheck.py +++ b/.pytool/Plugin/EccCheck/EccCheck.py @@ -69,6 +69,13 @@ class EccCheck(ICiBuildPlugin): env.set_shell_var('PACKAGES_PATH', os.pathsep.join(Edk2pathObj.PackagePathList)) self.ECC_PASS = True + abs_pkg_path = Edk2pathObj.GetAbsolutePathOnThisSystemFromEdk2RelativePath(packagename) + + if abs_pkg_path is None: + tc.SetSkipped() + tc.LogStdError("No Package folder {0}".format(abs_pkg_path)) + return 0 + # Create temp directory temp_path = os.path.join(workspace_path, 'Build', '.pytool', 'Plugin', 'EccCheck') try: @@ -77,7 +84,7 @@ class EccCheck(ICiBuildPlugin): shutil.rmtree(temp_path) # Copy package being scanned to temp_path shutil.copytree ( - os.path.join(workspace_path, packagename), + abs_pkg_path, os.path.join(temp_path, packagename), symlinks=True ) -- cgit v1.2.3