]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools: Enhance BaseTools supports FixedAtBuild usage in VFR file
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FfsInfStatement.py
index bba42c730865b9ad95bea84659f6f4bfe69b30ba..e9517a4b046bddc8414e4bf2c64319fa872cf6eb 100644 (file)
@@ -570,6 +570,16 @@ class FfsInfStatement(FfsInfStatementClassObject):
             if  PlatformDataBase != None:\r
                 if InfFileKey in PlatformDataBase.Modules:\r
                     DscArchList.append (Arch)\r
+                else:\r
+                    #\r
+                    # BaseTools support build same module more than once, the module path with FILE_GUID overridden has\r
+                    # the file name FILE_GUIDmodule.inf, then PlatformDataBase.Modules use FILE_GUIDmodule.inf as key,\r
+                    # but the path (self.MetaFile.Path) is the real path\r
+                    #\r
+                    for key in PlatformDataBase.Modules.keys():\r
+                        if InfFileKey == str((PlatformDataBase.Modules[key]).MetaFile.Path):\r
+                            DscArchList.append (Arch)\r
+                            break\r
 \r
         return DscArchList\r
 \r
@@ -931,22 +941,23 @@ class FfsInfStatement(FfsInfStatementClassObject):
                     #\r
                     # Generate the Raw data of raw section\r
                     #\r
-                    os.path.join( self.OutputPath, self.BaseName + '.offset')\r
-                    UniVfrOffsetFileName    =  os.path.join( self.OutputPath, self.BaseName + '.offset')\r
-                    UniVfrOffsetFileSection =  os.path.join( self.OutputPath, self.BaseName + 'Offset' + '.raw')\r
-                    \r
-                    self.__GenUniVfrOffsetFile (VfrUniOffsetList, UniVfrOffsetFileName)\r
-                    \r
-                    UniVfrOffsetFileNameList = []\r
-                    UniVfrOffsetFileNameList.append(UniVfrOffsetFileName)\r
-                    """Call GenSection"""\r
-                    GenFdsGlobalVariable.GenerateSection(UniVfrOffsetFileSection,\r
-                                                         UniVfrOffsetFileNameList,\r
-                                                         "EFI_SECTION_RAW"\r
-                                                         )\r
-                    os.remove(UniVfrOffsetFileName)         \r
-                    SectList.append(UniVfrOffsetFileSection)\r
-                    HasGneratedFlag = True\r
+                    if VfrUniOffsetList:\r
+                        os.path.join( self.OutputPath, self.BaseName + '.offset')\r
+                        UniVfrOffsetFileName    =  os.path.join( self.OutputPath, self.BaseName + '.offset')\r
+                        UniVfrOffsetFileSection =  os.path.join( self.OutputPath, self.BaseName + 'Offset' + '.raw')\r
+\r
+                        self.__GenUniVfrOffsetFile (VfrUniOffsetList, UniVfrOffsetFileName)\r
+\r
+                        UniVfrOffsetFileNameList = []\r
+                        UniVfrOffsetFileNameList.append(UniVfrOffsetFileName)\r
+                        """Call GenSection"""\r
+                        GenFdsGlobalVariable.GenerateSection(UniVfrOffsetFileSection,\r
+                                                             UniVfrOffsetFileNameList,\r
+                                                             "EFI_SECTION_RAW"\r
+                                                             )\r
+                        os.remove(UniVfrOffsetFileName)\r
+                        SectList.append(UniVfrOffsetFileSection)\r
+                        HasGneratedFlag = True\r
                 \r
             for SecName in  SectList :\r
                 SectFiles.append(SecName)\r