From f89dc9b6586a7bfedc6521d41a28fbef8f5d6405 Mon Sep 17 00:00:00 2001 From: Yonghong Zhu Date: Thu, 14 Apr 2016 23:03:45 +0800 Subject: BaseTools: Fix the bug to correctly handle the [BuildOptions] the last fix call os.path.normpath() function, which removes the trailing slash character, it cause NASM failure for ResetVector driver. Cc: Liming Gao Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yonghong Zhu Tested-by: Laszlo Ersek Reviewed-by: Liming Gao (cherry picked from commit 67a69059f714c0728676d13d97f10bd12730b378) --- BaseTools/Source/Python/Common/MultipleWorkspace.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'BaseTools') diff --git a/BaseTools/Source/Python/Common/MultipleWorkspace.py b/BaseTools/Source/Python/Common/MultipleWorkspace.py index 4e4c37ae13..2a76d49cc6 100644 --- a/BaseTools/Source/Python/Common/MultipleWorkspace.py +++ b/BaseTools/Source/Python/Common/MultipleWorkspace.py @@ -131,13 +131,16 @@ class MultipleWorkspace(object): PathList = PathStr.split() if PathList: for i, str in enumerate(PathList): - if str.find(TAB_WORKSPACE) != -1: - MacroStartPos = str.find(TAB_WORKSPACE) - MacroEndPos = str.find(')', MacroStartPos) - Substr = str[MacroEndPos+1:] - if Substr.startswith('/') or Substr.startswith('\\'): - Substr = Substr[1:] - PathList[i] = str[0:MacroStartPos] + os.path.normpath(cls.join(cls.WORKSPACE, Substr)) + MacroStartPos = str.find(TAB_WORKSPACE) + if MacroStartPos != -1: + Substr = str[MacroStartPos:] + Path = Substr.replace(TAB_WORKSPACE, cls.WORKSPACE).strip() + if not os.path.exists(Path): + for Pkg in cls.PACKAGES_PATH: + Path = Substr.replace(TAB_WORKSPACE, Pkg).strip() + if os.path.exists(Path): + break + PathList[i] = str[0:MacroStartPos] + Path PathStr = ' '.join(PathList) return PathStr -- cgit v1.2.3