2 # This file is used to define common items of class object
4 # Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
6 # This program and the accompanying materials are licensed and made available
7 # under the terms and conditions of the BSD License which accompanies this
8 # distribution. The full text of the license may be found at
9 # http://opensource.org/licenses/bsd-license.php
11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 from Library
.DataType
import TAB_LANGUAGE_EN_US
21 # @param object: Inherited from object class
23 class HelpTextObject(object):
25 self
.HelpText
= TextObject()
27 def SetHelpText(self
, HelpText
):
28 self
.HelpText
= HelpText
30 def GetHelpText(self
):
35 # @param object: Inherited from object class
37 class HelpTextListObject(object):
39 self
.HelpTextList
= []
41 def SetHelpTextList(self
, HelpTextList
):
42 self
.HelpTextList
= HelpTextList
44 def GetHelpTextList(self
):
45 return self
.HelpTextList
49 # @param object: Inherited from object class
51 class PromptListObject(object):
55 def SetPromptList(self
, PromptList
):
56 self
.PromptList
= PromptList
58 def GetPromptList(self
):
59 return self
.PromptList
61 ## CommonPropertiesObject
63 # This class defined common attribution used in Module/Platform/Package files
65 # @param object: Inherited from object class
66 # @param Usage: Input value for Usage, default is []
67 # @param FeatureFlag: Input value for FeatureFalg, default is ''
68 # @param SupArchList: Input value for SupArchList, default is []
69 # @param HelpText: Input value for HelpText, default is ''
70 # @param HelpTextList: Input value for HelpTextList, default is []
72 class CommonPropertiesObject(HelpTextObject
, HelpTextListObject
):
78 HelpTextObject
.__init
__(self
)
79 HelpTextListObject
.__init
__(self
)
81 def SetUsage(self
, Usage
):
87 def SetFeatureFlag(self
, FeatureFlag
):
88 self
.FeatureFlag
= FeatureFlag
90 def GetFeatureFlag(self
):
91 return self
.FeatureFlag
93 def SetSupArchList(self
, SupArchList
):
94 self
.SupArchList
= SupArchList
96 def GetSupArchList(self
):
97 return self
.SupArchList
99 def SetGuidValue(self
, GuidValue
):
100 self
.GuidValue
= GuidValue
102 def GetGuidValue(self
):
103 return self
.GuidValue
105 ## CommonHeaderObject
107 # This class defined common header items used in Module/Platform/Package files
109 # @param object: Inherited from object class
111 class CommonHeaderObject(object):
113 self
.AbstractList
= []
114 self
.DescriptionList
= []
115 self
.CopyrightList
= []
116 self
.LicenseList
= []
118 def SetAbstract(self
, Abstract
):
119 if isinstance(Abstract
, list):
120 self
.AbstractList
= Abstract
122 self
.AbstractList
.append(Abstract
)
124 def GetAbstract(self
):
125 return self
.AbstractList
127 def SetDescription(self
, Description
):
128 if isinstance(Description
, list):
129 self
.DescriptionList
= Description
131 self
.DescriptionList
.append(Description
)
133 def GetDescription(self
):
134 return self
.DescriptionList
136 def SetCopyright(self
, Copyright
):
137 if isinstance(Copyright
, list):
138 self
.CopyrightList
= Copyright
140 self
.CopyrightList
.append(Copyright
)
142 def GetCopyright(self
):
143 return self
.CopyrightList
145 def SetLicense(self
, License
):
146 if isinstance(License
, list):
147 self
.LicenseList
= License
149 self
.LicenseList
.append(License
)
151 def GetLicense(self
):
152 return self
.LicenseList
154 ## BinaryHeaderObject
156 # This class defined Binary header items used in Module/Platform/Package files
158 # @param object: Inherited from object class
160 class BinaryHeaderObject(object):
162 self
.BinaryHeaderAbstractList
= []
163 self
.BinaryHeaderDescriptionList
= []
164 self
.BinaryHeaderCopyrightList
= []
165 self
.BinaryHeaderLicenseList
= []
167 def SetBinaryHeaderAbstract(self
, Abstract
):
168 if isinstance(Abstract
, list) and Abstract
:
169 self
.BinaryHeaderAbstractList
= Abstract
170 elif isinstance(Abstract
, tuple) and Abstract
[1]:
171 self
.BinaryHeaderAbstractList
.append(Abstract
)
173 def GetBinaryHeaderAbstract(self
):
174 return self
.BinaryHeaderAbstractList
176 def SetBinaryHeaderDescription(self
, Description
):
177 if isinstance(Description
, list) and Description
:
178 self
.BinaryHeaderDescriptionList
= Description
179 elif isinstance(Description
, tuple) and Description
[1]:
180 self
.BinaryHeaderDescriptionList
.append(Description
)
182 def GetBinaryHeaderDescription(self
):
183 return self
.BinaryHeaderDescriptionList
185 def SetBinaryHeaderCopyright(self
, Copyright
):
186 if isinstance(Copyright
, list) and Copyright
:
187 self
.BinaryHeaderCopyrightList
= Copyright
188 elif isinstance(Copyright
, tuple) and Copyright
[1]:
189 self
.BinaryHeaderCopyrightList
.append(Copyright
)
191 def GetBinaryHeaderCopyright(self
):
192 return self
.BinaryHeaderCopyrightList
194 def SetBinaryHeaderLicense(self
, License
):
195 if isinstance(License
, list) and License
:
196 self
.BinaryHeaderLicenseList
= License
197 elif isinstance(License
, tuple) and License
[1]:
198 self
.BinaryHeaderLicenseList
.append(License
)
200 def GetBinaryHeaderLicense(self
):
201 return self
.BinaryHeaderLicenseList
203 ## ClonedRecordObject
205 # This class defined ClonedRecord items used in Module/Platform/Package files
207 # @param object: Inherited from object class
209 class ClonedRecordObject(object):
213 self
.PackageGuid
= ''
214 self
.PackageVersion
= ''
216 self
.ModuleVersion
= ''
218 def SetId(self
, IdNo
):
224 def SetFarGuid(self
, FarGuid
):
225 self
.FarGuid
= FarGuid
227 def GetFarGuid(self
):
230 def SetPackageGuid(self
, PackageGuid
):
231 self
.PackageGuid
= PackageGuid
233 def GetPackageGuid(self
):
234 return self
.PackageGuid
236 def SetPackageVersion(self
, PackageVersion
):
237 self
.PackageVersion
= PackageVersion
239 def GetPackageVersion(self
):
240 return self
.PackageVersion
242 def SetModuleGuid(self
, ModuleGuid
):
243 self
.ModuleGuid
= ModuleGuid
245 def GetModuleGuid(self
):
246 return self
.ModuleGuid
248 def SetModuleVersion(self
, ModuleVersion
):
249 self
.ModuleVersion
= ModuleVersion
251 def GetModuleVersion(self
):
252 return self
.ModuleVersion
256 # This class defined Text item used in PKG file
258 # @param object: Inherited from object class
260 class TextObject(object):
262 self
.Lang
= TAB_LANGUAGE_EN_US
265 def SetLang(self
, Lang
):
271 def SetString(self
, String
):
279 # This class defined File item used in module, for binary files
281 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
283 class FileNameObject(CommonPropertiesObject
):
287 CommonPropertiesObject
.__init
__(self
)
289 def SetFileType(self
, FileType
):
290 self
.FileType
= FileType
292 def GetFileType(self
):
295 def SetFilename(self
, Filename
):
296 self
.Filename
= Filename
298 def GetFilename(self
):
303 # This class defined File item used in PKG file
305 # @param object: Inherited from object class
307 class FileObject(object):
313 def SetExecutable(self
, Executable
):
314 self
.Executable
= Executable
316 def GetExecutable(self
):
317 return self
.Executable
319 def SetURI(self
, URI
):
325 def SetOS(self
, OsType
):
332 # MiscFileObject is used for xml
334 # @param CommonHeaderObject: Inherited from CommonHeaderObject class
336 class MiscFileObject(CommonHeaderObject
):
340 CommonHeaderObject
.__init
__(self
)
342 def SetName(self
, Name
):
348 def SetFileList(self
, FileList
):
349 self
.FileList
= FileList
351 def GetFileList(self
):
357 class ToolsObject(MiscFileObject
):
362 # This class defined GUID/Version items used in PKG file
364 # @param object: Inherited from object class
366 class GuidVersionObject(object):
371 def SetGuid(self
, Guid
):
377 def SetVersion(self
, Version
):
378 self
.Version
= Version
380 def GetVersion(self
):
383 ## IdentificationObject
385 # This class defined Identification items used in Module/Platform/Package files
387 # @param object: Inherited from object class
389 class IdentificationObject(GuidVersionObject
):
396 self
.PackagePath
= ''
398 self
.CombinePath
= ''
399 GuidVersionObject
.__init
__(self
)
401 def SetName(self
, Name
):
407 def SetBaseName(self
, BaseName
):
408 self
.BaseName
= BaseName
410 def GetBaseName(self
):
413 def SetFileName(self
, FileName
):
414 self
.FileName
= FileName
416 def GetFileName(self
):
419 def SetFullPath(self
, FullPath
):
420 self
.FullPath
= FullPath
422 def GetFullPath(self
):
425 def SetRelaPath(self
, RelaPath
):
426 self
.RelaPath
= RelaPath
428 def GetRelaPath(self
):
431 def SetPackagePath(self
, PackagePath
):
432 self
.PackagePath
= PackagePath
434 def GetPackagePath(self
):
435 return self
.PackagePath
437 def SetModulePath(self
, ModulePath
):
438 self
.ModulePath
= ModulePath
440 def GetModulePath(self
):
441 return self
.ModulePath
443 def SetCombinePath(self
, CombinePath
):
444 self
.CombinePath
= CombinePath
446 def GetCombinePath(self
):
447 return self
.CombinePath
449 ## GuidProtocolPpiCommonObject
451 # This class defined Guid, Protocol and Ppi like items used in
452 # Module/Platform/Package files
454 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
456 class GuidProtocolPpiCommonObject(CommonPropertiesObject
):
461 self
.SupModuleList
= []
462 CommonPropertiesObject
.__init
__(self
)
464 def SetName(self
, Name
):
470 def SetCName(self
, CName
):
476 def SetGuid(self
, Guid
):
482 def SetSupModuleList(self
, SupModuleList
):
483 self
.SupModuleList
= SupModuleList
485 def GetSupModuleList(self
):
486 return self
.SupModuleList
490 # This class defined Guid item used in Module/Platform/Package files
492 # @param GuidProtocolPpiCommonObject: GuidProtocolPpiCommonObject
494 class GuidObject(GuidProtocolPpiCommonObject
):
496 self
.VariableName
= ''
497 self
.GuidTypeList
= []
498 GuidProtocolPpiCommonObject
.__init
__(self
)
499 def SetVariableName(self
, VariableName
):
500 self
.VariableName
= VariableName
502 def GetVariableName(self
):
503 return self
.VariableName
505 def SetGuidTypeList(self
, GuidTypeList
):
506 self
.GuidTypeList
= GuidTypeList
508 def GetGuidTypeList(self
):
509 return self
.GuidTypeList
513 # This class defined Protocol item used in Module/Platform/Package files
515 # @param GuidProtocolPpiCommonObject: Inherited from
516 # GuidProtocolPpiCommonObject
518 class ProtocolObject(GuidProtocolPpiCommonObject
):
521 GuidProtocolPpiCommonObject
.__init
__(self
)
522 def SetNotify(self
, Notify
):
530 # This class defined Ppi item used in Module/Platform/Package files
532 # @param GuidProtocolPpiCommonObject: Inherited from
533 # GuidProtocolPpiCommonObject
535 class PpiObject(GuidProtocolPpiCommonObject
):
538 GuidProtocolPpiCommonObject
.__init
__(self
)
539 def SetNotify(self
, Notify
):
547 # This class defined item DEFINE used in Module/Platform/Package files
549 # @param object: Inherited from object class
551 class DefineClass(object):
555 ## UserExtensionObject
557 # @param object: Inherited from object class
559 class UserExtensionObject(object):
563 self
.BinaryAbstractList
= []
564 self
.BinaryDescriptionList
= []
565 self
.BinaryCopyrightList
= []
566 self
.BinaryLicenseList
= []
567 self
.UniLangDefsList
= []
569 # { Statement : Arch , ... }
571 self
.DefinesDict
= {}
573 # { Arch : Statement , ... }
575 self
.BuildOptionDict
= {}
576 self
.IncludesDict
= {}
577 self
.SourcesDict
= {}
578 self
.BinariesDict
= {}
580 # UserExtension statement from meta-data file [UserExtension] section
583 self
.SupArchList
= []
585 def SetStatement(self
, Statement
):
586 self
.Statement
= Statement
588 def GetStatement(self
):
589 return self
.Statement
591 def SetSupArchList(self
, ArchList
):
592 self
.SupArchList
= ArchList
594 def GetSupArchList(self
):
595 return self
.SupArchList
597 def SetUserID(self
, UserID
):
603 def SetIdentifier(self
, Identifier
):
604 self
.Identifier
= Identifier
606 def GetIdentifier(self
):
607 return self
.Identifier
609 def SetUniLangDefsList(self
, UniLangDefsList
):
610 self
.UniLangDefsList
= UniLangDefsList
612 def GetUniLangDefsList(self
):
613 return self
.UniLangDefsList
615 def SetBinaryAbstract(self
, BinaryAbstractList
):
616 self
.BinaryAbstractList
= BinaryAbstractList
618 def GetBinaryAbstract(self
, Lang
=None):
620 for (Key
, Value
) in self
.BinaryAbstractList
:
625 return self
.BinaryAbstractList
627 def SetBinaryDescription(self
, BinaryDescriptionList
):
628 self
.BinaryDescriptionList
= BinaryDescriptionList
630 def GetBinaryDescription(self
, Lang
=None):
632 for (Key
, Value
) in self
.BinaryDescriptionList
:
637 return self
.BinaryDescriptionList
639 def SetBinaryCopyright(self
, BinaryCopyrightList
):
640 self
.BinaryCopyrightList
= BinaryCopyrightList
642 def GetBinaryCopyright(self
, Lang
=None):
644 for (Key
, Value
) in self
.BinaryCopyrightList
:
649 return self
.BinaryCopyrightList
651 def SetBinaryLicense(self
, BinaryLicenseList
):
652 self
.BinaryLicenseList
= BinaryLicenseList
654 def GetBinaryLicense(self
, Lang
=None):
656 for (Key
, Value
) in self
.BinaryLicenseList
:
661 return self
.BinaryLicenseList
663 def SetDefinesDict(self
, DefinesDict
):
664 self
.DefinesDict
= DefinesDict
666 def GetDefinesDict(self
):
667 return self
.DefinesDict
669 def SetBuildOptionDict(self
, BuildOptionDict
):
670 self
.BuildOptionDict
= BuildOptionDict
672 def GetBuildOptionDict(self
):
673 return self
.BuildOptionDict
675 def SetIncludesDict(self
, IncludesDict
):
676 self
.IncludesDict
= IncludesDict
678 def GetIncludesDict(self
):
679 return self
.IncludesDict
681 def SetSourcesDict(self
, SourcesDict
):
682 self
.SourcesDict
= SourcesDict
684 def GetSourcesDict(self
):
685 return self
.SourcesDict
687 def SetBinariesDict(self
, BinariesDict
):
688 self
.BinariesDict
= BinariesDict
690 def GetBinariesDict(self
):
691 return self
.BinariesDict
693 ## LibraryClassObject
695 # This class defined Library item used in Module/Platform/Package files
697 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
699 class LibraryClassObject(CommonPropertiesObject
):
701 self
.LibraryClass
= ''
702 self
.IncludeHeader
= ''
703 self
.SupModuleList
= []
704 self
.RecommendedInstance
= GuidVersionObject()
705 CommonPropertiesObject
.__init
__(self
)
707 def SetLibraryClass(self
, LibraryClass
):
708 self
.LibraryClass
= LibraryClass
710 def GetLibraryClass(self
):
711 return self
.LibraryClass
713 def SetSupModuleList(self
, SupModuleList
):
714 self
.SupModuleList
= SupModuleList
716 def GetSupModuleList(self
):
717 return self
.SupModuleList
719 def SetIncludeHeader(self
, IncludeHeader
):
720 self
.IncludeHeader
= IncludeHeader
722 def GetIncludeHeader(self
):
723 return self
.IncludeHeader
725 def SetRecommendedInstance(self
, RecommendedInstance
):
726 self
.RecommendedInstance
= RecommendedInstance
728 def GetRecommendedInstance(self
):
729 return self
.RecommendedInstance
734 # @param object: Inherited from object class
736 class PcdErrorObject(object):
739 self
.ValidValueLang
= ''
740 self
.ValidValueRange
= ''
742 self
.ErrorNumber
= ''
743 self
.ErrorMessageList
= []
744 self
.TokenSpaceGuidCName
= ''
749 def SetValidValue(self
, ValidValue
):
750 self
.ValidValue
= ValidValue
752 def GetValidValue(self
):
753 return self
.ValidValue
755 def SetValidValueLang(self
, ValidValueLang
):
756 self
.ValidValueLang
= ValidValueLang
758 def GetValidValueLang(self
):
759 return self
.ValidValueLang
761 def SetValidValueRange(self
, ValidValueRange
):
762 self
.ValidValueRange
= ValidValueRange
764 def GetValidValueRange(self
):
765 return self
.ValidValueRange
767 def SetExpression(self
, Expression
):
768 self
.Expression
= Expression
770 def GetExpression(self
):
771 return self
.Expression
773 def SetErrorNumber(self
, ErrorNumber
):
774 self
.ErrorNumber
= ErrorNumber
776 def GetErrorNumber(self
):
777 return self
.ErrorNumber
779 def SetErrorMessageList(self
, ErrorMessageList
):
780 self
.ErrorMessageList
= ErrorMessageList
782 def GetErrorMessageList(self
):
783 return self
.ErrorMessageList
785 def SetTokenSpaceGuidCName(self
, TokenSpaceGuidCName
):
786 self
.TokenSpaceGuidCName
= TokenSpaceGuidCName
788 def GetTokenSpaceGuidCName(self
):
789 return self
.TokenSpaceGuidCName
791 def SetCName(self
, CName
):
797 def SetFileLine(self
, FileLine
):
798 self
.FileLine
= FileLine
800 def GetFileLine(self
):
803 def SetLineNum(self
, LineNum
):
804 self
.LineNum
= LineNum
806 def GetLineNum(self
):
812 # This class defined Include item used in Module/Platform/Package files
814 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
816 class IncludeObject(CommonPropertiesObject
):
820 self
.SupModuleList
= []
822 CommonPropertiesObject
.__init
__(self
)
824 def SetFilePath(self
, FilePath
):
825 self
.FilePath
= FilePath
827 def GetFilePath(self
):
830 def SetModuleType(self
, ModuleType
):
831 self
.ModuleType
= ModuleType
833 def GetModuleType(self
):
834 return self
.ModuleType
836 def SetSupModuleList(self
, SupModuleList
):
837 self
.SupModuleList
= SupModuleList
839 def GetSupModuleList(self
):
840 return self
.SupModuleList
842 def SetComment(self
, Comment
):
843 self
.Comment
= Comment
845 def GetComment(self
):
850 # This class defined Pcd item used in Module/Platform/Package files
852 # @param CName: Input value for CName, default is ''
853 # @param Token: Input value for Token, default is ''
854 # @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is
856 # @param DatumType: Input value for DatumType, default is ''
857 # @param MaxDatumSize: Input value for MaxDatumSize, default is ''
858 # @param DefaultValue: Input value for DefaultValue, default is ''
859 # @param ItemType: Input value for ItemType, default is ''
860 # @param ValidUsage: Input value for ValidUsage, default is []
861 # @param SkuInfoList: Input value for SkuInfoList, default is {}
862 # @param SupModuleList: Input value for SupModuleList, default is []
864 class PcdObject(CommonPropertiesObject
, HelpTextListObject
, PromptListObject
):
869 self
.TokenSpaceGuidCName
= ''
870 self
.TokenSpaceGuidValue
= ''
872 self
.MaxDatumSize
= ''
873 self
.DefaultValue
= ''
877 self
.PcdErrorsList
= []
878 self
.SupModuleList
= []
879 CommonPropertiesObject
.__init
__(self
)
880 HelpTextListObject
.__init
__(self
)
881 PromptListObject
.__init
__(self
)
883 def SetPcdCName(self
, PcdCName
):
884 self
.PcdCName
= PcdCName
886 def GetPcdCName(self
):
889 def SetCName(self
, CName
):
895 def SetToken(self
, Token
):
901 def SetOffset(self
, Offset
):
907 def SetTokenSpaceGuidCName(self
, TokenSpaceGuidCName
):
908 self
.TokenSpaceGuidCName
= TokenSpaceGuidCName
910 def GetTokenSpaceGuidCName(self
):
911 return self
.TokenSpaceGuidCName
913 def SetTokenSpaceGuidValue(self
, TokenSpaceGuidValue
):
914 self
.TokenSpaceGuidValue
= TokenSpaceGuidValue
916 def GetTokenSpaceGuidValue(self
):
917 return self
.TokenSpaceGuidValue
919 def SetDatumType(self
, DatumType
):
920 self
.DatumType
= DatumType
922 def GetDatumType(self
):
923 return self
.DatumType
925 def SetMaxDatumSize(self
, MaxDatumSize
):
926 self
.MaxDatumSize
= MaxDatumSize
928 def GetMaxDatumSize(self
):
929 return self
.MaxDatumSize
931 def SetDefaultValue(self
, DefaultValue
):
932 self
.DefaultValue
= DefaultValue
934 def GetDefaultValue(self
):
935 return self
.DefaultValue
937 def SetValidUsage(self
, ValidUsage
):
938 self
.ValidUsage
= ValidUsage
940 def GetValidUsage(self
):
941 return self
.ValidUsage
943 def SetPcdErrorsList(self
, PcdErrorsList
):
944 self
.PcdErrorsList
= PcdErrorsList
946 def GetPcdErrorsList(self
):
947 return self
.PcdErrorsList
949 def SetItemType(self
, ItemType
):
950 self
.ItemType
= ItemType
952 def GetItemType(self
):
955 def SetSupModuleList(self
, SupModuleList
):
956 self
.SupModuleList
= SupModuleList
958 def GetSupModuleList(self
):
959 return self
.SupModuleList