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
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