]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/MetaFileTable.py
BaseTools: Fix two drivers include the same file issue
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / MetaFileTable.py
index 69b2c40e7f1ac55c73518f5050ea003ed1658df9..f528c1ee6642a8355192843f0966c42db8f00bce 100644 (file)
@@ -31,15 +31,15 @@ class MetaFileTable(Table):
     _ID_MAX_ = 0.99999999\r
 \r
     ## Constructor\r
-    def __init__(self, Cursor, MetaFile, FileType, Temporary):\r
+    def __init__(self, Cursor, MetaFile, FileType, Temporary, FromItem=None):\r
         self.MetaFile = MetaFile\r
 \r
         self._FileIndexTable = TableFile(Cursor)\r
         self._FileIndexTable.Create(False)\r
 \r
-        FileId = self._FileIndexTable.GetFileId(MetaFile)\r
+        FileId = self._FileIndexTable.GetFileId(MetaFile, FromItem)\r
         if not FileId:\r
-            FileId = self._FileIndexTable.InsertFile(MetaFile, FileType)\r
+            FileId = self._FileIndexTable.InsertFile(MetaFile, FileType, FromItem)\r
 \r
         if Temporary:\r
             TableName = "_%s_%s_%s" % (FileType, FileId, uuid.uuid4().hex)\r
@@ -285,8 +285,8 @@ class PlatformTable(MetaFileTable):
     _DUMMY_ = "-1, -1, '====', '====', '====', '====', '====','====', -1, -1, -1, -1, -1, -1, -1"\r
 \r
     ## Constructor\r
-    def __init__(self, Cursor, MetaFile, Temporary):\r
-        MetaFileTable.__init__(self, Cursor, MetaFile, MODEL_FILE_DSC, Temporary)\r
+    def __init__(self, Cursor, MetaFile, Temporary, FromItem=0):\r
+        MetaFileTable.__init__(self, Cursor, MetaFile, MODEL_FILE_DSC, Temporary, FromItem)\r
 \r
     ## Insert table\r
     #\r
@@ -379,7 +379,7 @@ class MetaFileStorage(object):
     }\r
 \r
     ## Constructor\r
-    def __new__(Class, Cursor, MetaFile, FileType=None, Temporary=False):\r
+    def __new__(Class, Cursor, MetaFile, FileType=None, Temporary=False, FromItem=None):\r
         # no type given, try to find one\r
         if not FileType:\r
             if MetaFile.Type in self._FILE_TYPE_:\r
@@ -392,6 +392,8 @@ class MetaFileStorage(object):
             Args = (Cursor, MetaFile, FileType, Temporary)\r
         else:\r
             Args = (Cursor, MetaFile, Temporary)\r
+        if FromItem:\r
+            Args = Args + (FromItem,)\r
 \r
         # create the storage object and return it to caller\r
         return Class._FILE_TABLE_[FileType](*Args)\r