]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/Python/CommonDataClass/PackageClass.py
Sync tool code to BuildTools project r1739.
[mirror_edk2.git] / BaseTools / Source / Python / CommonDataClass / PackageClass.py
1 ## @file
2 # This file is used to define a class object to describe a package
3 #
4 # Copyright (c) 2007, Intel Corporation
5 # All rights reserved. This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
9 #
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 ##
14 # Import Modules
15 #
16 from CommonClass import *
17 from Common.Misc import sdict
18
19 ## PackageHeaderClass
20 #
21 # This class defined header items used in Package file
22 #
23 # @param IdentificationClass: Inherited from IdentificationClass class
24 # @param CommonHeaderClass: Inherited from CommonHeaderClass class
25 #
26 # @var DecSpecification: To store value for DecSpecification
27 # @var ReadOnly: To store value for ReadOnly
28 # @var RePackage: To store value for RePackage
29 # @var ClonedFrom: To store value for ClonedFrom, it is a set structure as
30 # [ ClonedRecordClass, ...]
31 #
32 class PackageHeaderClass(IdentificationClass, CommonHeaderClass):
33 def __init__(self):
34 IdentificationClass.__init__(self)
35 CommonHeaderClass.__init__(self)
36 self.DecSpecification = ''
37 self.ReadOnly = False
38 self.RePackage = False
39 self.PackagePath = ''
40 self.ClonedFrom = []
41
42 ## PackageIndustryStdHeaderClass
43 #
44 # This class defined industry std header items used in Package file
45 #
46 # @param CommonHeaderClass: Inherited from CommonHeaderClass class
47 #
48 # @var Name: To store value for Name
49 # @var IncludeHeader: To store value for IncludeHeader
50 #
51 class PackageIndustryStdHeaderClass(CommonClass):
52 def __init__(self):
53 self.Name = ''
54 self.IncludeHeader = ''
55 CommonClass.__init__(self)
56
57 ## PackageIncludePkgHeaderClass
58 #
59 # This class defined include Pkg header items used in Package file
60 #
61 # @param object: Inherited from object class
62 #
63 # @var IncludeHeader: To store value for IncludeHeader
64 # @var ModuleType: To store value for ModuleType, it is a set structure as
65 # 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
66 #
67 class PackageIncludePkgHeaderClass(object):
68 def __init__(self):
69 self.IncludeHeader = ''
70 self.ModuleType = []
71
72 ## PackageClass
73 #
74 # This class defined a complete package item
75 #
76 # @param object: Inherited from object class
77 #
78 # @var Header: To store value for Header, it is a structure as
79 # {Arch : PackageHeaderClass}
80 # @var Includes: To store value for Includes, it is a list structure as
81 # [ IncludeClass, ...]
82 # @var LibraryClassDeclarations: To store value for LibraryClassDeclarations, it is a list structure as
83 # [ LibraryClassClass, ...]
84 # @var IndustryStdHeaders: To store value for IndustryStdHeaders, it is a list structure as
85 # [ PackageIndustryStdHeader, ...]
86 # @var ModuleFiles: To store value for ModuleFiles, it is a list structure as
87 # [ '', '', ...]
88 # @var PackageIncludePkgHeaders: To store value for PackageIncludePkgHeaders, it is a list structure as
89 # [ PackageIncludePkgHeader, ...]
90 # @var GuidDeclarations: To store value for GuidDeclarations, it is a list structure as
91 # [ GuidClass, ...]
92 # @var ProtocolDeclarations: To store value for ProtocolDeclarations, it is a list structure as
93 # [ ProtocolClass, ...]
94 # @var PpiDeclarations: To store value for PpiDeclarations, it is a list structure as
95 # [ PpiClass, ...]
96 # @var PcdDeclarations: To store value for PcdDeclarations, it is a list structure as
97 # [ PcdClass, ...]
98 # @var UserExtensions: To store value for UserExtensions, it is a list structure as
99 # [ UserExtensionsClass, ...]
100 #
101 class PackageClass(object):
102 def __init__(self):
103 self.PackageHeader = PackageHeaderClass()
104 self.Header = {}
105 self.Includes = []
106 self.LibraryClassDeclarations = []
107 self.IndustryStdHeaders = []
108 self.ModuleFiles = []
109 # {[Guid, Value, Path(relative to WORKSPACE)]: ModuleClassObj}
110 self.Modules = sdict()
111 self.PackageIncludePkgHeaders = []
112 self.GuidDeclarations = []
113 self.ProtocolDeclarations = []
114 self.PpiDeclarations = []
115 self.PcdDeclarations = []
116 self.PcdChecks = []
117 self.UserExtensions = UserExtensionsClass()
118 self.MiscFiles = MiscFileClass()
119 self.FileList = []
120
121 ##
122 #
123 # This acts like the main() function for the script, unless it is 'import'ed into another
124 # script.
125 #
126 if __name__ == '__main__':
127 P = PackageClass()