]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fix bad macro expansion during tools_def.txt parsing
authorMichael Zimmermann <sigmaepsilon92@gmail.com>
Thu, 26 May 2016 07:54:51 +0000 (15:54 +0800)
committerLiming Gao <liming.gao@intel.com>
Fri, 27 May 2016 04:31:00 +0000 (12:31 +0800)
this is something I missed in 8ac46e4

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Common/ToolDefClassObject.py

index 753878a369f0711b6e80432116fbd3cce362c277..5dd505c9b9fa992423bef78664b5028663554f6e 100644 (file)
@@ -76,6 +76,32 @@ class ToolDefClassObject(object):
 \r
         self.IncludeToolDefFile(FileName)\r
 \r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))\r
+\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))\r
+\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()\r
+        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()\r
+\r
+        KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]\r
+        for Index in range(3, -1, -1):\r
+            for Key in dict(self.ToolsDefTxtDictionary):\r
+                List = Key.split('_')\r
+                if List[Index] == '*':\r
+                    for String in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
+                        List[Index] = String\r
+                        NewKey = '%s_%s_%s_%s_%s' % tuple(List)\r
+                        if NewKey not in self.ToolsDefTxtDictionary:\r
+                            self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]\r
+                        continue\r
+                    del self.ToolsDefTxtDictionary[Key]\r
+                elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
+                    del self.ToolsDefTxtDictionary[Key]\r
+\r
 \r
     ## IncludeToolDefFile\r
     #\r
@@ -201,31 +227,6 @@ class ToolDefClassObject(object):
                         EdkLogger.verbose("Line %d: The family is not specified, but BuildRuleFamily is specified for the tool chain: %s" % ((Index + 1), Name))\r
                     self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_BUILDRULEFAMILY][List[1]] = Value\r
 \r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))\r
-\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()\r
-        self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()\r
-\r
-        KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]\r
-        for Index in range(3, -1, -1):\r
-            for Key in dict(self.ToolsDefTxtDictionary):\r
-                List = Key.split('_')\r
-                if List[Index] == '*':\r
-                    for String in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
-                        List[Index] = String\r
-                        NewKey = '%s_%s_%s_%s_%s' % tuple(List)\r
-                        if NewKey not in self.ToolsDefTxtDictionary:\r
-                            self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]\r
-                        continue\r
-                    del self.ToolsDefTxtDictionary[Key]\r
-                elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
-                    del self.ToolsDefTxtDictionary[Key]\r
-\r
     ## ExpandMacros\r
     #\r
     # Replace defined macros with real value\r