]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/String.py
BaseTools: Fix a bug Build directory should relative to WORKSPACE
[mirror_edk2.git] / BaseTools / Source / Python / Common / String.py
index 5c8d1e0ded5b86b0463b0d31a1a7776e9f2a493a..4a8c03e88e28297e7c158fc27a420f0851e22d62 100644 (file)
@@ -46,12 +46,13 @@ def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):
     Last = 0\r
     Escaped = False\r
     InString = False\r
+    InParenthesis = 0\r
     for Index in range(0, len(String)):\r
         Char = String[Index]\r
 \r
         if not Escaped:\r
             # Found a splitter not in a string, split it\r
-            if not InString and Char == SplitTag:\r
+            if not InString and InParenthesis == 0 and Char == SplitTag:\r
                 ValueList.append(String[Last:Index].strip())\r
                 Last = Index + 1\r
                 if MaxSplit > 0 and len(ValueList) >= MaxSplit:\r
@@ -64,6 +65,10 @@ def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1):
                     InString = True\r
                 else:\r
                     InString = False\r
+            elif Char == '(':\r
+                InParenthesis = InParenthesis + 1\r
+            elif Char == ')':\r
+                InParenthesis = InParenthesis - 1\r
         else:\r
             Escaped = False\r
 \r
@@ -306,7 +311,7 @@ def NormPath(Path, Defines={}):
         # To local path format\r
         #\r
         Path = os.path.normpath(Path)\r
-        if Path.startswith(GlobalData.gWorkspace) and not os.path.exists(Path):\r
+        if Path.startswith(GlobalData.gWorkspace) and not Path.startswith(GlobalData.gBuildDirectory) and not os.path.exists(Path):\r
             Path = Path[len (GlobalData.gWorkspace):]\r
             if Path[0] == os.path.sep:\r
                 Path = Path[1:]\r