File=FileName, Line=Index+1)\r
Value = Value.replace(Ref, self.MacroDictionary[Ref])\r
\r
+ Value = self.ExpandMacros(Value)\r
+\r
MacroName = MacroDefinition[0].strip()\r
self.MacroDictionary["DEF(%s)" % MacroName] = Value\r
EdkLogger.debug(EdkLogger.DEBUG_9, "Line %d: Found macro: %s = %s" % ((Index + 1), MacroName, Value))\r
continue\r
\r
- MacroReference = gMacroRefPattern.findall(Value)\r
- for Ref in MacroReference:\r
- if Ref not in self.MacroDictionary:\r
- EdkLogger.error("tools_def.txt parser", PARSER_ERROR,\r
- "Macro [%s] has not been defined" % Ref,\r
- File=FileName, Line=Index+1)\r
- Value = Value.replace(Ref, self.MacroDictionary[Ref])\r
+ Value = self.ExpandMacros(Value)\r
\r
List = Name.split('_')\r
if len(List) != 5:\r
elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:\r
del self.ToolsDefTxtDictionary[Key]\r
\r
+ def ExpandMacros(self, Value):\r
+\r
+ MacroReference = gMacroRefPattern.findall(Value)\r
+ for Ref in MacroReference:\r
+ if Ref not in self.MacroDictionary:\r
+ EdkLogger.error("tools_def.txt parser", PARSER_ERROR,\r
+ "Macro [%s] has not been defined" % Ref,\r
+ File=FileName, Line=Index+1)\r
+ Value = Value.replace(Ref, self.MacroDictionary[Ref])\r
+\r
+ return Value\r
+\r
def ToolDefDict(WorkSpace):\r
Target = TargetTxtClassObject()\r
Target.LoadTargetTxtFile(WorkSpace + '\\Conf\\target.txt')\r