mirror of https://github.com/acidanthera/audk.git
BaseTools: Fix bad macro expansion during tools_def.txt parsing
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>
This commit is contained in:
parent
db827286e2
commit
6608330d76
|
@ -76,6 +76,32 @@ class ToolDefClassObject(object):
|
||||||
|
|
||||||
self.IncludeToolDefFile(FileName)
|
self.IncludeToolDefFile(FileName)
|
||||||
|
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))
|
||||||
|
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))
|
||||||
|
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()
|
||||||
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()
|
||||||
|
|
||||||
|
KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]
|
||||||
|
for Index in range(3, -1, -1):
|
||||||
|
for Key in dict(self.ToolsDefTxtDictionary):
|
||||||
|
List = Key.split('_')
|
||||||
|
if List[Index] == '*':
|
||||||
|
for String in self.ToolsDefTxtDatabase[KeyList[Index]]:
|
||||||
|
List[Index] = String
|
||||||
|
NewKey = '%s_%s_%s_%s_%s' % tuple(List)
|
||||||
|
if NewKey not in self.ToolsDefTxtDictionary:
|
||||||
|
self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]
|
||||||
|
continue
|
||||||
|
del self.ToolsDefTxtDictionary[Key]
|
||||||
|
elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:
|
||||||
|
del self.ToolsDefTxtDictionary[Key]
|
||||||
|
|
||||||
|
|
||||||
## IncludeToolDefFile
|
## IncludeToolDefFile
|
||||||
#
|
#
|
||||||
|
@ -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))
|
EdkLogger.verbose("Line %d: The family is not specified, but BuildRuleFamily is specified for the tool chain: %s" % ((Index + 1), Name))
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_BUILDRULEFAMILY][List[1]] = Value
|
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_BUILDRULEFAMILY][List[1]] = Value
|
||||||
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET]))
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG]))
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH]))
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE] = list(set(self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE]))
|
|
||||||
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET].sort()
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TOOL_CHAIN_TAG].sort()
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_TARGET_ARCH].sort()
|
|
||||||
self.ToolsDefTxtDatabase[TAB_TOD_DEFINES_COMMAND_TYPE].sort()
|
|
||||||
|
|
||||||
KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]
|
|
||||||
for Index in range(3, -1, -1):
|
|
||||||
for Key in dict(self.ToolsDefTxtDictionary):
|
|
||||||
List = Key.split('_')
|
|
||||||
if List[Index] == '*':
|
|
||||||
for String in self.ToolsDefTxtDatabase[KeyList[Index]]:
|
|
||||||
List[Index] = String
|
|
||||||
NewKey = '%s_%s_%s_%s_%s' % tuple(List)
|
|
||||||
if NewKey not in self.ToolsDefTxtDictionary:
|
|
||||||
self.ToolsDefTxtDictionary[NewKey] = self.ToolsDefTxtDictionary[Key]
|
|
||||||
continue
|
|
||||||
del self.ToolsDefTxtDictionary[Key]
|
|
||||||
elif List[Index] not in self.ToolsDefTxtDatabase[KeyList[Index]]:
|
|
||||||
del self.ToolsDefTxtDictionary[Key]
|
|
||||||
|
|
||||||
## ExpandMacros
|
## ExpandMacros
|
||||||
#
|
#
|
||||||
# Replace defined macros with real value
|
# Replace defined macros with real value
|
||||||
|
|
Loading…
Reference in New Issue