2 # This file is used to define common items of class object
4 # Copyright (c) 2007 - 2015, 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
is None:
49 self
.FeatureFlag
= FeatureFlag
50 self
.SupArchList
= SupArchList
51 if self
.SupArchList
is 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 | MM_STANDALONE | MM_CORE_STANDALONE
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 | MM_STANDALONE | MM_CORE_STANDALONE
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
= '', VariableAttribute
= '', DefaultStore
= None):
274 self
.SkuIdName
= SkuIdName
280 if DefaultStore
is None:
282 self
.VariableName
= VariableName
283 self
.VariableGuid
= VariableGuid
284 self
.VariableGuidValue
= VariableGuidValue
285 self
.VariableOffset
= VariableOffset
286 self
.HiiDefaultValue
= HiiDefaultValue
287 self
.VariableAttribute
= VariableAttribute
288 self
.DefaultStoreDict
= DefaultStore
293 self
.VpdOffset
= VpdOffset
298 self
.DefaultValue
= DefaultValue
300 ## Convert the class to a string
302 # Convert each member of the class to string
303 # Organize to a signle line format string
305 # @retval Rtn Formatted String
308 Rtn
= 'SkuId = ' + str(self
.SkuId
) + "," + \
309 'SkuIdName = ' + str(self
.SkuIdName
) + "," + \
310 'VariableName = ' + str(self
.VariableName
) + "," + \
311 'VariableGuid = ' + str(self
.VariableGuid
) + "," + \
312 'VariableOffset = ' + str(self
.VariableOffset
) + "," + \
313 'HiiDefaultValue = ' + str(self
.HiiDefaultValue
) + "," + \
314 'VpdOffset = ' + str(self
.VpdOffset
) + "," + \
315 'DefaultValue = ' + str(self
.DefaultValue
) + ","
321 class PcdErrorClass(object):
323 self
.ValidValueList
= ''
324 self
.ValidValueListLang
= ''
325 self
.ValidValueRange
= ''
327 self
.ErrorNumber
= ''
328 self
.ErrorMessage
= []
332 # This class defined Pcd item used in Module/Platform/Package files
334 # @param CommonClass: Inherited from CommonClass class
335 # @param CName: Input value for CName, default is ''
336 # @param Token: Input value for Token, default is ''
337 # @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is ''
338 # @param DatumType: Input value for DatumType, default is ''
339 # @param MaxDatumSize: Input value for MaxDatumSize, default is ''
340 # @param DefaultValue: Input value for DefaultValue, default is ''
341 # @param ItemType: Input value for ItemType, default is ''
342 # @param ValidUsage: Input value for ValidUsage, default is []
343 # @param SkuInfoList: Input value for SkuInfoList, default is {}
344 # @param SupModuleList: Input value for SupModuleList, default is []
346 # @var CName: To store value for CName
347 # @var Token: To store value for Token
348 # @var TokenSpaceGuidCName: To store value for TokenSpaceGuidCName
349 # @var DatumType: To store value for DatumType, selection scope is in below list
350 # UINT8 | UINT16 | UINT32 | UINT64 | VOID* | BOOLEAN
351 # @var MaxDatumSize: To store value for MaxDatumSize
352 # @var DefaultValue: To store value for DefaultValue
353 # @var ItemType: To store value for ItemType, selection scope is in below list
354 # FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
355 # @var ValidUsage: To store value for ValidUsage, selection scope is in below list
356 # FEATURE_FLAG | FIXED_AT_BUILD | PATCHABLE_IN_MODULE | DYNAMIC | DYNAMIC_EX
357 # @var SkuInfoList: To store value for SkuInfoList
358 # It is a set structure as { [SkuIdName] : SkuInfoClass }
359 # @var SupModuleList: To store value for SupModuleList, selection scope is in below list
360 # 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 | MM_STANDALONE | MM_CORE_STANDALONE
362 class PcdClass(CommonClass
):
363 def __init__(self
, CName
= '', Token
= '', TokenSpaceGuidCName
= '', DatumType
= '', MaxDatumSize
= '', DefaultValue
= '', ItemType
= '', ValidUsage
= None, SkuInfoList
= None, SupModuleList
= None):
366 self
.TokenSpaceGuidCName
= TokenSpaceGuidCName
367 self
.DatumType
= DatumType
368 self
.MaxDatumSize
= MaxDatumSize
369 self
.DefaultValue
= DefaultValue
370 self
.ItemType
= ItemType
371 self
.ValidUsage
= ValidUsage
372 self
.PcdItemType
= ''
373 self
.TokenSpaceGuidValue
= ''
378 if self
.ValidUsage
is None:
380 self
.SkuInfoList
= SkuInfoList
381 if self
.SkuInfoList
is None:
382 self
.SkuInfoList
= {}
383 self
.SupModuleList
= SupModuleList
384 if self
.SupModuleList
is None:
385 self
.SupModuleList
= []
386 CommonClass
.__init
__(self
)
391 # This class defined BuildOption item used in Module/Platform/Package files
393 # @param IncludeStatementClass: Inherited from IncludeStatementClass class
394 # @param ToolChainFamily: Input value for ToolChainFamily, default is ''
395 # @param ToolChain: Input value for ToolChain, default is ''
396 # @param Option: Input value for Option, default is ''
398 # @var Statement: To store value for Statement
399 # It is a string in a special format as "Family:Target_TagName_Tarch_ToolCode_FLAGS = String"
400 # @var ToolChainFamily: To store value for ToolChainFamily
401 # @var ToolChain: To store value for ToolChain
402 # @var Option: To store value for Option
403 # @var BuildTarget: To store value for BuildTarget
404 # @var TagName: To store value for TagName
405 # @var ToolCode: To store value for ToolCode
406 # @var SupArchList: To store value for SupArchList, selection scope is in below list
407 # EBC | IA32 | X64 | IPF | ARM | PPC | AARCH64
409 class BuildOptionClass(IncludeStatementClass
):
410 def __init__(self
, ToolChainFamily
= '', ToolChain
= '', Option
= ''):
411 IncludeStatementClass
.__init
__(self
)
413 self
.ToolChainFamily
= ToolChainFamily
414 self
.ToolChain
= ToolChain
416 self
.BuildTarget
= ''
419 self
.SupArchList
= []
423 # This class defined Include item used in Module/Platform/Package files
425 # @param CommonClass: Inherited from CommonClass class
427 # @var FilePath: To store value for FilePath
428 # @var ModuleType: To store value for ModuleType
429 # @var Comment: To store value for Comment
431 class IncludeClass(CommonClass
):
435 self
.SupModuleList
= []
437 CommonClass
.__init
__(self
)
442 class FileClass(CommonClass
):
448 CommonClass
.__init
__(self
)
454 class MiscFileClass(CommonHeaderClass
):
456 CommonHeaderClass
.__init
__(self
)
461 ## UserExtensionsClass
463 # This class defined UserExtensions item used in Module/Platform/Package files
465 # @param object: Inherited from object class
467 # @var UserID: To store value for UserID
468 # @var Identifier: To store value for Identifier
469 # @var Content: To store value for Content
471 class UserExtensionsClass(object):
477 self
.BuildOptions
= []