]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python: New Target/ToolChain/Arch in DSC [BuildOptions]
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / GenFdsGlobalVariable.py
index 3019ec63c3bb8f757e284c58c121079d1542428f..c31fc24870d56b495240f2daca7b9b87ad32291f 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Global variables for GenFds\r
 #\r
-#  Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
@@ -875,14 +875,27 @@ def FindExtendTool(KeyStringList, CurrentArchList, NameGuid):
     ToolOptionKey = None\r
     KeyList = None\r
     for tool_def in ToolDefinition.items():\r
-        if NameGuid.lower() == tool_def[1].lower():\r
-            KeyList = tool_def[0].split('_')\r
-            Key = KeyList[0] + \\r
-                  '_' + \\r
-                  KeyList[1] + \\r
-                  '_' + \\r
-                  KeyList[2]\r
-            if Key in KeyStringList and KeyList[4] == DataType.TAB_GUID:\r
+        KeyList = tool_def[0].split('_')\r
+        if len(KeyList) < 5:\r
+            continue\r
+        if KeyList[4] != DataType.TAB_GUID:\r
+            continue\r
+        if NameGuid.lower() != tool_def[1].lower():\r
+            continue\r
+        Key = KeyList[0] + \\r
+                '_' + \\r
+                KeyList[1] + \\r
+                '_' + \\r
+                KeyList[2]\r
+        for KeyString in KeyStringList:\r
+            KeyStringBuildTarget, KeyStringToolChain, KeyStringArch = KeyString.split('_')\r
+            if KeyList[0] == DataType.TAB_STAR:\r
+                KeyList[0] = KeyStringBuildTarget\r
+            if KeyList[1] == DataType.TAB_STAR:\r
+                KeyList[1] = KeyStringToolChain\r
+            if KeyList[2] == DataType.TAB_STAR:\r
+                KeyList[2] = KeyStringArch\r
+            if KeyList[0] == KeyStringBuildTarget and KeyList[1] == KeyStringToolChain and KeyList[2] == KeyStringArch:\r
                 ToolPathKey   = Key + '_' + KeyList[3] + '_PATH'\r
                 ToolOptionKey = Key + '_' + KeyList[3] + '_FLAGS'\r
                 ToolPath = ToolDefinition.get(ToolPathKey)\r