self.DecToPackage()\r
\r
def ParseDec(self, Lines, Key, KeyField):\r
- GetMultipleValuesOfKeyFromLines(Lines, Key, KeyField, TAB_COMMENT_SPLIT)\r
+ newKey = SplitModuleType(Key)\r
+ if newKey[0].find(DataType.TAB_LIBRARY_CLASSES.upper()) != -1:\r
+ GetLibraryClassesWithModuleType(Lines, Key, KeyField, TAB_COMMENT_SPLIT)\r
+ else:\r
+ GetMultipleValuesOfKeyFromLines(Lines, Key, KeyField, TAB_COMMENT_SPLIT)\r
\r
def MergeAllArches(self):\r
for key in self.KeyList:\r
LibraryClasses = {}\r
for Arch in DataType.ARCH_LIST:\r
for Item in self.Contents[Arch].LibraryClasses:\r
- List = GetSplitValueList(Item, DataType.TAB_VALUE_SPLIT)\r
+ List = GetSplitValueList(Item[0], DataType.TAB_VALUE_SPLIT)\r
if len(List) != 2:\r
ErrorMsg = "Wrong statement '%s' found in section LibraryClasses in file '%s', correct format is '<CName>=<GuidValue>'" % (Item, self.Package.Header.FullPath) \r
raise ParserError(PARSER_ERROR, msg = ErrorMsg)\r
else:\r
- MergeArches(LibraryClasses, (List[0], List[1]), Arch)\r
+ if Item[1] == ['']:\r
+ Item[1] = DataType.SUP_MODULE_LIST\r
+ MergeArches(LibraryClasses, (List[0], List[1]) + tuple(Item[1]), Arch)\r
for Key in LibraryClasses.keys():\r
LibraryClass = LibraryClassClass()\r
LibraryClass.LibraryClass = Key[0]\r
LibraryClass.RecommendedInstance = Key[1]\r
+ LibraryClass.SupModuleList = list(Key[2:])\r
LibraryClass.SupArchList = LibraryClasses[Key]\r
self.Package.LibraryClassDeclarations.append(LibraryClass)\r
\r
print Item.CName, Item.Guid, Item.SupArchList\r
print '\nLibraryClasses =', m.LibraryClassDeclarations\r
for Item in m.LibraryClassDeclarations:\r
- print Item.LibraryClass, Item.RecommendedInstance, Item.SupArchList\r
+ print Item.LibraryClass, Item.RecommendedInstance, Item.SupModuleList, Item.SupArchList\r
print '\nPcds =', m.PcdDeclarations\r
for Item in m.PcdDeclarations:\r
print Item.CName, Item.TokenSpaceGuidCName, Item.DefaultValue, Item.ItemType, Item.Token, Item.DatumType, Item.SupArchList\r
LibraryClass.RecommendedInstance = Key[1]\r
LibraryClass.FeatureFlag = Key[2]\r
LibraryClass.SupArchList = LibraryClasses[Key]\r
- if Key[3] != ['']:\r
+ if Key[3] != '':\r
LibraryClass.SupModuleList = GetSplitValueList(Key[3])\r
+ else:\r
+ LibraryClass.SupModuleList = DataType.SUP_MODULE_LIST\r
self.Module.LibraryClasses.append(LibraryClass)\r
\r
#Packages\r
\r
if __name__ == '__main__':\r
m = Inf()\r
- directory = 'C:\Documents and Settings\\hchen30\\Desktop\\prototype\\inf'\r
+ directory = 'C:\MyWorkspace\MdePkg\Library\BaseLib'\r
fileList = []\r
\r
for f in os.listdir(directory):\r