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