]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/GenFds.py
Sync BaseTool trunk (version r2670) into EDKII BaseTools.
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / GenFds.py
index 058fa0c6a0b76f4b0622088ea6e94a9c4fb70d6d..c0762edf228f875ca0e8c5aad60667d3ff16f450 100644 (file)
@@ -36,6 +36,7 @@ from Common import EdkLogger
 from Common.String import *\r
 from Common.Misc import DirCache,PathClass\r
 from Common.Misc import SaveFileOnChange\r
+from Common.Misc import GuidStructureStringToGuidString\r
 from Common.BuildVersion import gBUILD_VERSION\r
 \r
 ## Version and Copyright\r
@@ -511,11 +512,23 @@ class GenFds :
     def GenerateGuidXRefFile(BuildDb, ArchList):\r
         GuidXRefFileName = os.path.join(GenFdsGlobalVariable.FvDir, "Guid.xref")\r
         GuidXRefFile = StringIO.StringIO('')\r
+        GuidDict = {}\r
         for Arch in ArchList:\r
             PlatformDataBase = BuildDb.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]\r
             for ModuleFile in PlatformDataBase.Modules:\r
                 Module = BuildDb.BuildObject[ModuleFile, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag]\r
                 GuidXRefFile.write("%s %s\n" % (Module.Guid, Module.BaseName))\r
+                for key, item in Module.Protocols.items():\r
+                    GuidDict[key] = item\r
+                for key, item in Module.Guids.items():\r
+                    GuidDict[key] = item\r
+                for key, item in Module.Ppis.items():\r
+                    GuidDict[key] = item\r
+       # Append GUIDs, Protocols, and PPIs to the Xref file\r
+        GuidXRefFile.write("\n")\r
+        for key, item in GuidDict.items():\r
+            GuidXRefFile.write("%s %s\n" % (GuidStructureStringToGuidString(item).upper(), key))\r
+\r
         if GuidXRefFile.getvalue():\r
             SaveFileOnChange(GuidXRefFileName, GuidXRefFile.getvalue(), False)\r
             GenFdsGlobalVariable.InfLogger("\nGUID cross reference file can be found at %s" % GuidXRefFileName)\r