git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@466 7335b...
[people/mcb30/basetools.git] / Source / Python / Common / DecClassObject.py
index df7fa38..966ac3a 100644 (file)
@@ -73,7 +73,11 @@ class Dec(DecObject):
             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
@@ -188,16 +192,19 @@ class Dec(DecObject):
         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
@@ -278,7 +285,7 @@ class Dec(DecObject):
             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