2 # This file is used to define common items of class object
4 # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
5 # 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
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.
17 def GenerateHelpText(Text
, Lang
):
29 # This class defined common items used in Module/Platform/Package files
31 # @param object: Inherited from object class
32 # @param Usage: Input value for Usage, default is []
33 # @param FeatureFlag: Input value for FeatureFalg, default is ''
34 # @param SupArchList: Input value for SupArchList, default is []
35 # @param HelpText: Input value for HelpText, default is ''
37 # @var Usage: To store value for Usage, selection scope is in below list
38 # ALWAYS_CONSUMED | SOMETIMES_CONSUMED | ALWAYS_PRODUCED | SOMETIMES_PRODUCED | TO_START | BY_START | PRIVATE
39 # @var FeatureFlag: To store value for FeatureFlag
40 # @var SupArchList: To store value for SupArchList, selection scope is in below list
41 # EBC | IA32 | X64 | IPF | ARM | PPC | AARCH64
42 # @var HelpText: To store value for HelpText
44 class CommonClass(object):
45 def __init__(self
, Usage
= None, FeatureFlag
= '', SupArchList
= None, HelpText
= ''):
47 if self
.Usage
== None:
49 self
.FeatureFlag
= FeatureFlag
50 self
.SupArchList
= SupArchList
51 if self
.SupArchList
== None:
53 self
.HelpText
= HelpText
54 self
.HelpTextList
= []
58 # This class defined common items used in Module/Platform/Package files
60 # @param object: Inherited from object class
62 # @var Abstract: To store value for Abstract
63 # @var Description: To store value for Description
64 # @var Copyright: To store value for Copyright
65 # @var License: To store value for License
66 # @var Specification: To store value for Specification
68 class CommonHeaderClass(object):
74 self
.Specification
= {}
78 # This class defined HelpText item used in PKG file
80 # @param object: Inherited from object class
82 # @var Lang: To store value for Lang
83 # @var String: To store value for String
85 class HelpTextClass(object):
92 # This class defined item DEFINE used in Module/Platform/Package files
94 # @param object: Inherited from object class
96 # @var Define: To store value for Define, it is a set structure as
97 # { (DefineName, Arch) : DefineValue, ... }
99 class DefineClass(object):
105 # This class defined ClonedRecord items used in Module/Platform/Package files
107 # @param object: Inherited from object class
109 # @var Id: To store value for Id
110 # @var FarGuid: To store value for FarGuid
111 # @var PackageGuid: To store value for PackageGuid
112 # @var PackageVersion: To store value for PackageVersion
113 # @var ModuleGuid: To store value for ModuleGuid
114 # @var ModuleVersion: To store value for ModuleVersion
116 class ClonedRecordClass(object):
120 self
.PackageGuid
= ''
121 self
.PackageVersion
= ''
123 self
.ModuleVersion
= ''
125 ## IdentificationClass
127 # This class defined Identification items used in Module/Platform/Package files
129 # @param object: Inherited from object class
131 # @var Name: To store value for Name
132 # ModuleName(Inf) / PackageName(Dec) / PlatformName(Dsc)
133 # @var Guid: To store value for Guid
134 # @var Version: To store value for Version
135 # @var FileName: To store value for FileName
136 # @var FullPath: To store value for FullPath
138 class IdentificationClass(object):
147 self
.PackagePath
= ''
149 self
.CombinePath
= ''
151 ## IncludeStatementClass
153 # This class defined IncludeFiles item used in Module/Platform/Package files
155 # @param object: Inherited from object class
157 # @var IncludeFiles: To store value for IncludeFiles
158 # It is a set structure as { IncludeFile : [Arch1, Arch2, ...], ... }
160 class IncludeStatementClass(object):
162 self
.IncludeFiles
= {}
164 ## GuidProtocolPpiCommonClass
166 # This class defined Guid, Protocol and Ppi like items used in Module/Platform/Package files
168 # @param CommonClass: Inherited from CommonClass class
170 # @var Name: To store value for Name
171 # @var CName: To store value for CName
172 # @var Guid: To store value for Guid
173 # @var Notify: To store value for Notify
174 # @var GuidTypeList: To store value for GuidTypeList, selection scope is in below list
175 # DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID
176 # @var SupModuleList: To store value for SupModuleList, selection scope is in below list
177 # BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
179 class GuidProtocolPpiCommonClass(CommonClass
):
184 self
.VariableName
= ''
186 self
.GuidTypeList
= []
187 self
.GuidTypeLists
= []
188 self
.SupModuleList
= []
189 CommonClass
.__init
__(self
)
193 # This class defined Library item used in Module/Platform/Package files
195 # @param CommonClass: Inherited from CommonClass class
196 # @param DefineClass: Inherited from DefineClass class
198 # @var LibraryClass: To store value for LibraryClass
199 # @var IncludeHeader: To store value for IncludeHeader
200 # @var RecommendedInstanceVersion: To store value for RecommendedInstanceVersion
201 # @var RecommendedInstanceGuid: To store value for RecommendedInstanceGuid
202 # @var RecommendedInstance: To store value for RecommendedInstance, selection scope is in below list
203 # DATA_HUB_RECORD | EFI_EVENT | EFI_SYSTEM_CONFIGURATION_TABLE | EFI_VARIABLE | GUID | HII_PACKAGE_LIST | HOB | TOKEN_SPACE_GUID
204 # @var SupModuleList: To store value for SupModuleList, selection scope is in below list
205 # BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
207 class LibraryClassClass(CommonClass
, DefineClass
):
209 self
.LibraryClass
= ''
210 self
.IncludeHeader
= ''
211 self
.RecommendedInstanceVersion
= ''
212 self
.RecommendedInstanceGuid
= ''
213 self
.RecommendedInstance
= ''
214 self
.SupModuleList
= []
215 CommonClass
.__init
__(self
)
216 DefineClass
.__init
__(self
)
220 # This class defined Guid item used in Module/Platform/Package files
222 # @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
224 class GuidClass(GuidProtocolPpiCommonClass
):
226 GuidProtocolPpiCommonClass
.__init
__(self
)
230 # This class defined Protocol item used in Module/Platform/Package files
232 # @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
234 class ProtocolClass(GuidProtocolPpiCommonClass
):
236 GuidProtocolPpiCommonClass
.__init
__(self
)
240 # This class defined Ppi item used in Module/Platform/Package files
242 # @param GuidProtocolPpiCommonClass: Inherited from GuidProtocolPpiCommonClass class
244 class PpiClass(GuidProtocolPpiCommonClass
):
246 GuidProtocolPpiCommonClass
.__init
__(self
)
250 # This class defined SkuInfo item used in Module/Platform/Package files
252 # @param object: Inherited from object class
253 # @param SkuIdName: Input value for SkuIdName, default is ''
254 # @param SkuId: Input value for SkuId, default is ''
255 # @param VariableName: Input value for VariableName, default is ''
256 # @param VariableGuid: Input value for VariableGuid, default is ''
257 # @param VariableOffset: Input value for VariableOffset, default is ''
258 # @param HiiDefaultValue: Input value for HiiDefaultValue, default is ''
259 # @param VpdOffset: Input value for VpdOffset, default is ''
260 # @param DefaultValue: Input value for DefaultValue, default is ''
262 # @var SkuIdName: To store value for SkuIdName
263 # @var SkuId: To store value for SkuId
264 # @var VariableName: To store value for VariableName
265 # @var VariableGuid: To store value for VariableGuid
266 # @var VariableOffset: To store value for VariableOffset
267 # @var HiiDefaultValue: To store value for HiiDefaultValue
268 # @var VpdOffset: To store value for VpdOffset
269 # @var DefaultValue: To store value for DefaultValue
271 class SkuInfoClass(object):
272 def __init__(self
, SkuIdName
= '', SkuId
= '', VariableName
= '', VariableGuid
= '', VariableOffset
= '',
273 HiiDefaultValue
= '', VpdOffset
= '', DefaultValue
= '', VariableGuidValue
= ''):
274 self
.SkuIdName
= SkuIdName
280 self
.VariableName
= VariableName
281 self
.VariableGuid
= VariableGuid
282 self
.VariableGuidValue
= VariableGuidValue
283 self
.VariableOffset
= VariableOffset
284 self
.HiiDefaultValue
= HiiDefaultValue
289 self
.VpdOffset
= VpdOffset
294 self
.DefaultValue
= DefaultValue
296 ## Convert the class to a string
298 # Convert each member of the class to string
299 # Organize to a signle line format string
301 # @retval Rtn Formatted String
304 Rtn
= 'SkuId = ' + str(self
.SkuId
) + "," + \
305 'SkuIdName = ' + str(self
.SkuIdName
) + "," + \
306 'VariableName = ' + str(self
.VariableName
) + "," + \
307 'VariableGuid = ' + str(self
.VariableGuid
) + "," + \
308 'VariableOffset = ' + str(self
.VariableOffset
) + "," + \
309 'HiiDefaultValue = ' + str(self
.HiiDefaultValue
) + "," + \
310 'VpdOffset = ' + str(self
.VpdOffset
) + "," + \
311 'DefaultValue = ' + str(self
.DefaultValue
) + ","
317 class PcdErrorClass(object):
319 self
.ValidValueList
= ''
320 self
.ValidValueListLang
= ''
321 self
.ValidValueRange
= ''
323 self
.ErrorNumber
= ''
324 self
.ErrorMessage
= []
328 # This class defined Pcd item used in Module/Platform/Package files
330 # @param CommonClass: Inherited from CommonClass class
331 # @param CName: Input value for CName, default is ''
332 # @param Token: Input value for Token, default is ''
333 # @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is ''
334 # @param DatumType: Input value for DatumType, default is ''
335 # @param MaxDatumSize: Input value for MaxDatumSize, default is ''
336 # @param DefaultValue: Input value for DefaultValue, default is ''
337 # @param ItemType: Input value for ItemType, default is ''
338 # @param ValidUsage: Input value for ValidUsage, default is []
339 # @param SkuInfoList: Input value for SkuInfoList, default is {}
340 # @param SupModuleList: Input value for SupModuleList, default is []
342 # @var CName: To store value for CName
343 # @var Token: To store value for Token
344 # @var TokenSpaceGuidCName: To store value for TokenSpaceGuidCName
345 # @var DatumType: To store value for DatumType, selection scope is in below list
346 # UINT8 | UINT16 | UINT32 | UINT64 | VOID* | BOOLEAN
347 # @var MaxDatumSize: To store value for MaxDatumSize
348 # @var DefaultValue: To store value for DefaultValue
349 # @var ItemType: To store value for ItemType, selection scope is in below list
350 # FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
351 # @var ValidUsage: To store value for ValidUsage, selection scope is in below list
352 # FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
353 # @var SkuInfoList: To store value for SkuInfoList
354 # It is a set structure as { [SkuIdName] : SkuInfoClass }
355 # @var SupModuleList: To store value for SupModuleList, selection scope is in below list
356 # BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED | SMM_CORE
358 class PcdClass(CommonClass
):
359 def __init__(self
, CName
= '', Token
= '', TokenSpaceGuidCName
= '', DatumType
= '', MaxDatumSize
= '', DefaultValue
= '', ItemType
= '', ValidUsage
= None, SkuInfoList
= None, SupModuleList
= None):
362 self
.TokenSpaceGuidCName
= TokenSpaceGuidCName
363 self
.DatumType
= DatumType
364 self
.MaxDatumSize
= MaxDatumSize
365 self
.DefaultValue
= DefaultValue
366 self
.ItemType
= ItemType
367 self
.ValidUsage
= ValidUsage
368 self
.PcdItemType
= ''
369 self
.TokenSpaceGuidValue
= ''
374 if self
.ValidUsage
== None:
376 self
.SkuInfoList
= SkuInfoList
377 if self
.SkuInfoList
== None:
378 self
.SkuInfoList
= {}
379 self
.SupModuleList
= SupModuleList
380 if self
.SupModuleList
== None:
381 self
.SupModuleList
= []
382 CommonClass
.__init
__(self
)
387 # This class defined BuildOption item used in Module/Platform/Package files
389 # @param IncludeStatementClass: Inherited from IncludeStatementClass class
390 # @param ToolChainFamily: Input value for ToolChainFamily, default is ''
391 # @param ToolChain: Input value for ToolChain, default is ''
392 # @param Option: Input value for Option, default is ''
394 # @var Statement: To store value for Statement
395 # It is a string in a special format as "Family:Target_TagName_Tarch_ToolCode_FLAGS = String"
396 # @var ToolChainFamily: To store value for ToolChainFamily
397 # @var ToolChain: To store value for ToolChain
398 # @var Option: To store value for Option
399 # @var BuildTarget: To store value for BuildTarget
400 # @var TagName: To store value for TagName
401 # @var ToolCode: To store value for ToolCode
402 # @var SupArchList: To store value for SupArchList, selection scope is in below list
403 # EBC | IA32 | X64 | IPF | ARM | PPC | AARCH64
405 class BuildOptionClass(IncludeStatementClass
):
406 def __init__(self
, ToolChainFamily
= '', ToolChain
= '', Option
= ''):
407 IncludeStatementClass
.__init
__(self
)
409 self
.ToolChainFamily
= ToolChainFamily
410 self
.ToolChain
= ToolChain
412 self
.BuildTarget
= ''
415 self
.SupArchList
= []
419 # This class defined Include item used in Module/Platform/Package files
421 # @param CommonClass: Inherited from CommonClass class
423 # @var FilePath: To store value for FilePath
424 # @var ModuleType: To store value for ModuleType
425 # @var Comment: To store value for Comment
427 class IncludeClass(CommonClass
):
431 self
.SupModuleList
= []
433 CommonClass
.__init
__(self
)
438 class FileClass(CommonClass
):
444 CommonClass
.__init
__(self
)
450 class MiscFileClass(CommonHeaderClass
):
452 CommonHeaderClass
.__init
__(self
)
457 ## UserExtensionsClass
459 # This class defined UserExtensions item used in Module/Platform/Package files
461 # @param object: Inherited from object class
463 # @var UserID: To store value for UserID
464 # @var Identifier: To store value for Identifier
465 # @var Content: To store value for Content
467 class UserExtensionsClass(object):
473 self
.BuildOptions
= []