## @file # This file is used to define a class object to describe a package # # Copyright (c) 2007, Intel Corporation. All rights reserved.
# This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. ## # Import Modules # from CommonClass import * from Common.Misc import sdict ## PackageHeaderClass # # This class defined header items used in Package file # # @param IdentificationClass: Inherited from IdentificationClass class # @param CommonHeaderClass: Inherited from CommonHeaderClass class # # @var DecSpecification: To store value for DecSpecification # @var ReadOnly: To store value for ReadOnly # @var RePackage: To store value for RePackage # @var ClonedFrom: To store value for ClonedFrom, it is a set structure as # [ ClonedRecordClass, ...] # class PackageHeaderClass(IdentificationClass, CommonHeaderClass): def __init__(self): IdentificationClass.__init__(self) CommonHeaderClass.__init__(self) self.DecSpecification = '' self.ReadOnly = False self.RePackage = False self.PackagePath = '' self.ClonedFrom = [] ## PackageIndustryStdHeaderClass # # This class defined industry std header items used in Package file # # @param CommonHeaderClass: Inherited from CommonHeaderClass class # # @var Name: To store value for Name # @var IncludeHeader: To store value for IncludeHeader # class PackageIndustryStdHeaderClass(CommonClass): def __init__(self): self.Name = '' self.IncludeHeader = '' CommonClass.__init__(self) ## PackageIncludePkgHeaderClass # # This class defined include Pkg header items used in Package file # # @param object: Inherited from object class # # @var IncludeHeader: To store value for IncludeHeader # @var ModuleType: To store value for ModuleType, it is a set structure as # BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | TOOL | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE # class PackageIncludePkgHeaderClass(object): def __init__(self): self.IncludeHeader = '' self.ModuleType = [] ## PackageClass # # This class defined a complete package item # # @param object: Inherited from object class # # @var Header: To store value for Header, it is a structure as # {Arch : PackageHeaderClass} # @var Includes: To store value for Includes, it is a list structure as # [ IncludeClass, ...] # @var LibraryClassDeclarations: To store value for LibraryClassDeclarations, it is a list structure as # [ LibraryClassClass, ...] # @var IndustryStdHeaders: To store value for IndustryStdHeaders, it is a list structure as # [ PackageIndustryStdHeader, ...] # @var ModuleFiles: To store value for ModuleFiles, it is a list structure as # [ '', '', ...] # @var PackageIncludePkgHeaders: To store value for PackageIncludePkgHeaders, it is a list structure as # [ PackageIncludePkgHeader, ...] # @var GuidDeclarations: To store value for GuidDeclarations, it is a list structure as # [ GuidClass, ...] # @var ProtocolDeclarations: To store value for ProtocolDeclarations, it is a list structure as # [ ProtocolClass, ...] # @var PpiDeclarations: To store value for PpiDeclarations, it is a list structure as # [ PpiClass, ...] # @var PcdDeclarations: To store value for PcdDeclarations, it is a list structure as # [ PcdClass, ...] # @var UserExtensions: To store value for UserExtensions, it is a list structure as # [ UserExtensionsClass, ...] # class PackageClass(object): def __init__(self): self.PackageHeader = PackageHeaderClass() self.Header = {} self.Includes = [] self.LibraryClassDeclarations = [] self.IndustryStdHeaders = [] self.ModuleFiles = [] # {[Guid, Value, Path(relative to WORKSPACE)]: ModuleClassObj} self.Modules = sdict() self.PackageIncludePkgHeaders = [] self.GuidDeclarations = [] self.ProtocolDeclarations = [] self.PpiDeclarations = [] self.PcdDeclarations = [] self.PcdChecks = [] self.UserExtensions = UserExtensionsClass() self.MiscFiles = MiscFileClass() self.FileList = [] ## # # This acts like the main() function for the script, unless it is 'import'ed into another # script. # if __name__ == '__main__': P = PackageClass()