]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools: Fix the problem using FILE_GUID override in .dsc
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index 1c9a5130bf5323d388dc34f7db74cd93689c0136..2fbbad114c9e7012f5c0f6dca55e5cc687ea9ec4 100644 (file)
@@ -24,7 +24,7 @@ from uuid import UUID
 \r
 from Common.BuildToolError import *\r
 from Common import EdkLogger\r
-from Common.Misc import PathClass, tdict\r
+from Common.Misc import PathClass, tdict, ProcessDuplicatedInf\r
 from Common.StringUtils import NormPath, ReplaceMacro\r
 from Common import GlobalData\r
 from Common.Expression import *\r
@@ -2416,8 +2416,12 @@ class FdfParser:
             if ErrorCode != 0:\r
                 EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)\r
 \r
-        if not ffsInf.InfFileName in self.Profile.InfList:\r
-            self.Profile.InfList.append(ffsInf.InfFileName)\r
+        NewFileName = ffsInf.InfFileName\r
+        if ffsInf.OverrideGuid:\r
+            NewFileName = ProcessDuplicatedInf(PathClass(ffsInf.InfFileName,GenFdsGlobalVariable.WorkSpaceDir), ffsInf.OverrideGuid, GenFdsGlobalVariable.WorkSpaceDir).Path\r
+\r
+        if not NewFileName in self.Profile.InfList:\r
+            self.Profile.InfList.append(NewFileName)\r
             FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)\r
             self.Profile.InfFileLineList.append(FileLineTuple)\r
             if ffsInf.UseArch:\r
@@ -4346,8 +4350,12 @@ class FdfParser:
             if ErrorCode != 0:\r
                 EdkLogger.error("GenFds", ErrorCode, ExtraData=ErrorInfo)\r
 \r
-        if not ffsInf.InfFileName in self.Profile.InfList:\r
-            self.Profile.InfList.append(ffsInf.InfFileName)\r
+        NewFileName = ffsInf.InfFileName\r
+        if ffsInf.OverrideGuid:\r
+            NewFileName = ProcessDuplicatedInf(PathClass(ffsInf.InfFileName,GenFdsGlobalVariable.WorkSpaceDir), ffsInf.OverrideGuid, GenFdsGlobalVariable.WorkSpaceDir).Path\r
+\r
+        if not NewFileName in self.Profile.InfList:\r
+            self.Profile.InfList.append(NewFileName)\r
             FileLineTuple = GetRealFileLine(self.FileName, self.CurrentLineNumber)\r
             self.Profile.InfFileLineList.append(FileLineTuple)\r
             if ffsInf.UseArch:\r
@@ -4396,8 +4404,8 @@ class FdfParser:
                         raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)\r
                     # Get a list of PCI IDs\r
                     Overrides.PciDeviceId = ""\r
-                    while (self.__GetNextHexNumber()):\r
-                        Overrides.PciDeviceId = "{} {}".format(Overrides.PciDeviceId, self.__Token)\r
+                    while (self._GetNextHexNumber()):\r
+                        Overrides.PciDeviceId = "{} {}".format(Overrides.PciDeviceId, self._Token)\r
                     if not Overrides.PciDeviceId:\r
                         raise Warning.Expected("one or more Hex device ids", self.FileName, self.CurrentLineNumber)\r
                     continue\r