def __init__(self, Filename = None, IsToPackage = False, WorkspaceDir = None, AllGuidVersionDict = None, SupArchList = DataType.ARCH_LIST): self.Identification = IdentificationClass() self.Package = PackageClass() self.UserExtensions = '' self.WorkspaceDir = WorkspaceDir self.SupArchList = SupArchList self.AllGuidVersionDict = {} if AllGuidVersionDict: self.AllGuidVersionDict = AllGuidVersionDict self.KeyList = [ TAB_INCLUDES, TAB_GUIDS, TAB_PROTOCOLS, TAB_PPIS, TAB_LIBRARY_CLASSES, \ TAB_PCDS_FIXED_AT_BUILD_NULL, TAB_PCDS_PATCHABLE_IN_MODULE_NULL, TAB_PCDS_FEATURE_FLAG_NULL, \ TAB_PCDS_DYNAMIC_NULL, TAB_PCDS_DYNAMIC_EX_NULL, TAB_DEC_DEFINES ] # Upper all KEYs to ignore case sensitive when parsing self.KeyList = map(lambda c: c.upper(), self.KeyList) # Init RecordSet self.RecordSet = {} for Key in self.KeyList: self.RecordSet[Section[Key]] = [] # Init Comment self.SectionHeaderCommentDict = {} # Load Dec file if filename is not None if Filename != None: self.LoadDecFile(Filename) # Transfer to Package Object if IsToPackage is True if IsToPackage: self.DecToPackage()
def __init__(self, Filename=None, IsToDatabase=False, IsToPackage=False, WorkspaceDir=None, Database=None, SupArchList=DataType.ARCH_LIST): self.Identification = Identification() self.Package = PackageClass() self.UserExtensions = '' self.WorkspaceDir = WorkspaceDir self.SupArchList = SupArchList self.IsToDatabase = IsToDatabase self.Cur = Database.Cur self.TblFile = Database.TblFile self.TblDec = Database.TblDec self.FileID = -1 self.KeyList = [ TAB_INCLUDES, TAB_GUIDS, TAB_PROTOCOLS, TAB_PPIS, TAB_LIBRARY_CLASSES, \ TAB_PCDS_FIXED_AT_BUILD_NULL, TAB_PCDS_PATCHABLE_IN_MODULE_NULL, TAB_PCDS_FEATURE_FLAG_NULL, \ TAB_PCDS_DYNAMIC_NULL, TAB_PCDS_DYNAMIC_EX_NULL, TAB_DEC_DEFINES ] # # Upper all KEYs to ignore case sensitive when parsing # self.KeyList = map(lambda c: c.upper(), self.KeyList) # # Init RecordSet # self.RecordSet = {} for Key in self.KeyList: self.RecordSet[Section[Key]] = [] # # Load Dec file if filename is not None # if Filename != None: self.LoadDecFile(Filename) # # Transfer to Package Object if IsToPackage is True # if IsToPackage: self.DecToPackage()
def LoadSpd(SpdFileName): XmlSpd = XmlParseFile(SpdFileName) EdkLogger.verbose("Xml Object loaded for file %s" % SpdFileName) Package = PackageClass() Package.Header = LoadPackageHeader(XmlSpd, SpdFileName) Package.LibraryClassDeclarations = LoadPackageLibraryClasses(XmlSpd) Package.IndustryStdHeaders = LoadPackageIndustryStdHeaders(XmlSpd) Package.ModuleFiles = LoadPackageModuleFiles(XmlSpd) Package.PackageIncludePkgHeaders = LoadPackageIncludePkgHeaders(XmlSpd) Package.GuidDeclarations = LoadPackageGuidDeclarations(XmlSpd) Package.ProtocolDeclarations = LoadPackageProtocolDeclarations(XmlSpd) Package.PpiDeclarations = LoadPackagePpiDeclarations(XmlSpd) Package.PcdDeclarations = LoadPackagePcdDeclarations(XmlSpd) Package.UserExtensions = LoadPackageUserExtensions(XmlSpd) return Package