def ToXml(self, BinaryFile, Key): if self.FileNames: pass NodeList = [] FilenameList = BinaryFile.GetFileNameList() SupportArch = None for Filename in FilenameList: Tmp = FilenameXml() NodeList.append(Tmp.ToXml(Filename, 'Filename')) SupportArch = Filename.SupArchList AsBuildList = BinaryFile.GetAsBuiltList() PatchPcdValueList = AsBuildList.GetPatchPcdList() PcdExList = AsBuildList.GetPcdExList() LibGuidVerList = AsBuildList.GetLibraryInstancesList() BuildFlagList = AsBuildList.GetBuildFlagsList() AsBuiltNodeList = [] for Pcd in PatchPcdValueList: if IsMatchArch(Pcd.SupArchList, SupportArch): Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) for Pcd in PcdExList: if IsMatchArch(Pcd.SupArchList, SupportArch): Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) GuiVerElemList = [] for LibGuidVer in LibGuidVerList: if LibGuidVer.GetLibGuid() and IsMatchArch( LibGuidVer.GetSupArchList(), SupportArch): GuiVerElem = \ CreateXmlElement('GUID', LibGuidVer.GetLibGuid(), [], [['Version', LibGuidVer.GetLibVersion()]]) GuiVerElemList.append(GuiVerElem) if len(GuiVerElemList) > 0: LibGuidVerElem = CreateXmlElement('LibraryInstances', '', GuiVerElemList, []) AsBuiltNodeList.append(LibGuidVerElem) for BuildFlag in BuildFlagList: if IsMatchArch(BuildFlag.GetSupArchList(), SupportArch): for Item in BuildFlag.GetAsBuildList(): Tmp = BuildFlagXml() Elem = CreateXmlElement('BuildFlags', ''.join(Item), [], []) AsBuiltNodeList.append(Elem) if len(AsBuiltNodeList) > 0: Element = CreateXmlElement('AsBuilt', '', AsBuiltNodeList, []) NodeList.append(Element) Root = CreateXmlElement('%s' % Key, '', NodeList, []) return Root
def FromXml(self, Item, Key): if self.FileNames: pass BinaryFile = BinaryFileObject() FilenameList = [] SupArchList = ['COMMON'] for SubItem in XmlList(Item, '%s/Filename' % Key): Axml = FilenameXml() Bxml = Axml.FromXml(SubItem, 'Filename') FilenameList.append(Bxml) BinaryFile.SetFileNameList(FilenameList) for FileName in FilenameList: if FileName.GetSupArchList(): SupArchList = FileName.GetSupArchList() BinaryFile.SetSupArchList(SupArchList) if GlobalData.gIS_BINARY_INF: AsBuiltList = [] for AsBuiltItem in XmlList(Item, '%s/AsBuilt' % Key): AsBuilt = AsBuiltObject() PatchPcdValueList = [] for SubItem in XmlList(AsBuiltItem, 'AsBuilt/PatchPcdValue'): Axml = PcdEntryXml() Bxml = Axml.FromXml(SubItem, 'PatchPcdValue') PatchPcdValueList.append(Bxml) AsBuilt.SetPatchPcdList(PatchPcdValueList) PcdExValueList = [] for SubItem in XmlList(AsBuiltItem, 'AsBuilt/PcdExValue'): Axml = PcdEntryXml() Bxml = Axml.FromXml(SubItem, 'PcdExValue') PcdExValueList.append(Bxml) AsBuilt.SetPcdExList(PcdExValueList) LibraryList = [] for SubItem in XmlList( Item, '%s/AsBuilt/LibraryInstances/GUID' % Key): GuidVerObj = GuidVersionObject() GUID = XmlElement(SubItem, 'GUID') Version = XmlAttribute(XmlNode(SubItem, 'GUID'), 'Version') GuidVerObj.SetGuid(GUID) GuidVerObj.SetVersion(Version) LibraryList.append(GuidVerObj) if XmlList(Item, '%s/AsBuilt/LibraryInstances' % Key) and not LibraryList: LibraryList = [None] AsBuilt.SetLibraryInstancesList(LibraryList) BuildFlagList = [] for SubItem in XmlList(Item, '%s/AsBuilt/BuildFlags' % Key): BuildFlag = BuildFlagXml() BuildFlagList.append( BuildFlag.FromXml2(SubItem, 'BuildFlags')) AsBuilt.SetBuildFlagsList(BuildFlagList) AsBuiltList.append(AsBuilt) BinaryFile.SetAsBuiltList(AsBuiltList) return BinaryFile
def ToXml(self, BinaryFile, Key): if self.FileNames: pass NodeList = [] FilenameList = BinaryFile.GetFileNameList() for Filename in FilenameList: Tmp = FilenameXml() NodeList.append(Tmp.ToXml(Filename, 'Filename')) if GlobalData.gIS_BINARY_INF: AsBuildList = BinaryFile.GetAsBuiltList() PatchPcdValueList = AsBuildList.GetPatchPcdList() PcdExList = AsBuildList.GetPcdExList() LibGuidVerList = AsBuildList.GetLibraryInstancesList() BuildFlagList = AsBuildList.GetBuildFlagsList() AsBuiltNodeList = [] for Pcd in PatchPcdValueList: Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) for Pcd in PcdExList: Tmp = PcdEntryXml() AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) GuiVerElemList = [] for LibGuidVer in LibGuidVerList: GuiVerElem = \ CreateXmlElement('GUID', LibGuidVer.GetLibGuid(), [], [['Version', LibGuidVer.GetLibVersion()]]) GuiVerElemList.append(GuiVerElem) if len(GuiVerElemList) > 0: LibGuidVerElem = CreateXmlElement('LibraryInstances', '', GuiVerElemList, []) AsBuiltNodeList.append(LibGuidVerElem) for BuildFlag in BuildFlagList: Tmp = BuildFlagXml() Elem = CreateXmlElement('BuildFlags', ''.join(BuildFlag), [], []) AsBuiltNodeList.append(Elem) if len(AsBuiltNodeList) > 0: Element = CreateXmlElement('AsBuilt', '', AsBuiltNodeList, []) NodeList.append(Element) Root = CreateXmlElement('%s' % Key, '', NodeList, []) return Root