def ProcessStructurePcd(self, StructurePcdRawDataSet): s_pcd_set = OrderedDict() for s_pcd, LineNo in StructurePcdRawDataSet: if s_pcd.TokenSpaceGuidCName not in s_pcd_set: s_pcd_set[s_pcd.TokenSpaceGuidCName] = [] s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd, LineNo)) str_pcd_set = [] for pcdname in s_pcd_set: dep_pkgs = [] struct_pcd = StructurePcd() for item, LineNo in s_pcd_set[pcdname]: if "<HeaderFiles>" in item.TokenCName: struct_pcd.StructuredPcdIncludeFile.append( item.DefaultValue) elif "<Packages>" in item.TokenCName: dep_pkgs.append(item.DefaultValue) elif item.DatumType == item.TokenCName: struct_pcd.copy(item) struct_pcd.TokenValue = struct_pcd.TokenValue.strip( "{").strip() struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName = pcdname.split( ".") struct_pcd.PcdDefineLineNo = LineNo struct_pcd.PkgPath = self.MetaFile.File struct_pcd.SetDecDefaultValue(item.DefaultValue) else: struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue, self.MetaFile.File, LineNo) struct_pcd.PackageDecs = dep_pkgs str_pcd_set.append(struct_pcd) return str_pcd_set
def ProcessStructurePcd(self, StructurePcdRawDataSet): s_pcd_set = OrderedDict() for s_pcd,LineNo in StructurePcdRawDataSet: if s_pcd.TokenSpaceGuidCName not in s_pcd_set: s_pcd_set[s_pcd.TokenSpaceGuidCName] = [] s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd,LineNo)) str_pcd_set = [] for pcdname in s_pcd_set: dep_pkgs = [] struct_pcd = StructurePcd() for item,LineNo in s_pcd_set[pcdname]: if "<HeaderFiles>" in item.TokenCName: struct_pcd.StructuredPcdIncludeFile.append(item.DefaultValue) elif "<Packages>" in item.TokenCName: dep_pkgs.append(item.DefaultValue) elif item.DatumType == item.TokenCName: struct_pcd.copy(item) struct_pcd.TokenValue = struct_pcd.TokenValue.strip("{").strip() struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName = pcdname.split(".") struct_pcd.PcdDefineLineNo = LineNo struct_pcd.PkgPath = self.MetaFile.File struct_pcd.SetDecDefaultValue(item.DefaultValue) else: struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue,self.MetaFile.File,LineNo) struct_pcd.PackageDecs = dep_pkgs if not struct_pcd.StructuredPcdIncludeFile: EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName,self.MetaFile.File,LineNo )) str_pcd_set.append(struct_pcd) return str_pcd_set