mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
1. Add a recovery mode for UPT failure 2. Add UNI file support 3. Add binary file header support 4. Add support for PCD error message 5. Add support for replace 6. Format generated INF/DEC files 7. Update dependency check 8. Other minor fixes Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hesheng.chen@intel.com> Reviewed-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15896 6f19259b-4bc3-4df7-8a09-765794883524
655 lines
17 KiB
Python
655 lines
17 KiB
Python
## @file
|
|
# This file is used to define a class object to describe a module
|
|
#
|
|
# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# This program and the accompanying materials are licensed and made available
|
|
# under the terms and conditions of the BSD License which accompanies this
|
|
# distribution. The full text of the license may be found at
|
|
# http://opensource.org/licenses/bsd-license.php
|
|
#
|
|
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
'''
|
|
ModuleObject
|
|
'''
|
|
|
|
##
|
|
# Import Modules
|
|
#
|
|
from Object.POM.CommonObject import CommonPropertiesObject
|
|
from Object.POM.CommonObject import IdentificationObject
|
|
from Object.POM.CommonObject import CommonHeaderObject
|
|
from Object.POM.CommonObject import BinaryHeaderObject
|
|
from Object.POM.CommonObject import HelpTextListObject
|
|
from Object.POM.CommonObject import GuidVersionObject
|
|
|
|
|
|
##
|
|
# BootModeObject
|
|
#
|
|
class BootModeObject(CommonPropertiesObject, HelpTextListObject):
|
|
def __init__(self):
|
|
self.SupportedBootModes = ''
|
|
CommonPropertiesObject.__init__(self)
|
|
HelpTextListObject.__init__(self)
|
|
|
|
def SetSupportedBootModes(self, SupportedBootModes):
|
|
self.SupportedBootModes = SupportedBootModes
|
|
|
|
def GetSupportedBootModes(self):
|
|
return self.SupportedBootModes
|
|
|
|
##
|
|
# EventObject
|
|
#
|
|
class EventObject(CommonPropertiesObject, HelpTextListObject):
|
|
def __init__(self):
|
|
self.EventType = ''
|
|
CommonPropertiesObject.__init__(self)
|
|
HelpTextListObject.__init__(self)
|
|
|
|
def SetEventType(self, EventType):
|
|
self.EventType = EventType
|
|
|
|
def GetEventType(self):
|
|
return self.EventType
|
|
|
|
##
|
|
# HobObject
|
|
#
|
|
class HobObject(CommonPropertiesObject, HelpTextListObject):
|
|
def __init__(self):
|
|
self.HobType = ''
|
|
CommonPropertiesObject.__init__(self)
|
|
HelpTextListObject.__init__(self)
|
|
|
|
def SetHobType(self, HobType):
|
|
self.HobType = HobType
|
|
|
|
def GetHobType(self):
|
|
return self.HobType
|
|
|
|
##
|
|
# SpecObject
|
|
#
|
|
class SpecObject(object):
|
|
def __init__(self):
|
|
self.Spec = ''
|
|
self.Version = ''
|
|
|
|
def SetSpec(self, Spec):
|
|
self.Spec = Spec
|
|
|
|
def GetSpec(self):
|
|
return self.Spec
|
|
|
|
def SetVersion(self, Version):
|
|
self.Version = Version
|
|
|
|
def GetVersion(self):
|
|
return self.Version
|
|
|
|
## ModuleHeaderObject
|
|
#
|
|
# This class defined header items used in Module file
|
|
#
|
|
class ModuleHeaderObject(IdentificationObject, CommonHeaderObject, BinaryHeaderObject):
|
|
def __init__(self):
|
|
self.IsLibrary = False
|
|
self.IsLibraryModList = []
|
|
self.ModuleType = ''
|
|
self.BinaryModule = False
|
|
self.PcdIsDriver = ''
|
|
self.PiSpecificationVersion = ''
|
|
self.UefiSpecificationVersion = ''
|
|
self.UNIFlag = False
|
|
#
|
|
# SpecObject
|
|
#
|
|
self.SpecList = []
|
|
#
|
|
# BootModeObject
|
|
#
|
|
self.BootModeList = []
|
|
#
|
|
# EventObject
|
|
#
|
|
self.EventList = []
|
|
#
|
|
# HobObject
|
|
#
|
|
self.HobList = []
|
|
#
|
|
# LibraryClassObject
|
|
#
|
|
self.LibraryClassList = []
|
|
self.SupArchList = []
|
|
IdentificationObject.__init__(self)
|
|
CommonHeaderObject.__init__(self)
|
|
BinaryHeaderObject.__init__(self)
|
|
|
|
def SetIsLibrary(self, IsLibrary):
|
|
self.IsLibrary = IsLibrary
|
|
|
|
def GetIsLibrary(self):
|
|
return self.IsLibrary
|
|
|
|
def SetIsLibraryModList(self, IsLibraryModList):
|
|
self.IsLibraryModList = IsLibraryModList
|
|
|
|
def GetIsLibraryModList(self):
|
|
return self.IsLibraryModList
|
|
|
|
def SetModuleType(self, ModuleType):
|
|
self.ModuleType = ModuleType
|
|
|
|
def GetModuleType(self):
|
|
return self.ModuleType
|
|
|
|
def SetBinaryModule(self, BinaryModule):
|
|
self.BinaryModule = BinaryModule
|
|
|
|
def GetBinaryModule(self):
|
|
return self.BinaryModule
|
|
|
|
def SetPcdIsDriver(self, PcdIsDriver):
|
|
self.PcdIsDriver = PcdIsDriver
|
|
|
|
def GetPcdIsDriver(self):
|
|
return self.PcdIsDriver
|
|
|
|
def SetPiSpecificationVersion(self, PiSpecificationVersion):
|
|
self.PiSpecificationVersion = PiSpecificationVersion
|
|
|
|
def GetPiSpecificationVersion(self):
|
|
return self.PiSpecificationVersion
|
|
|
|
def SetUefiSpecificationVersion(self, UefiSpecificationVersion):
|
|
self.UefiSpecificationVersion = UefiSpecificationVersion
|
|
|
|
def GetUefiSpecificationVersion(self):
|
|
return self.UefiSpecificationVersion
|
|
|
|
def SetSpecList(self, SpecList):
|
|
self.SpecList = SpecList
|
|
|
|
def GetSpecList(self):
|
|
return self.SpecList
|
|
|
|
def SetBootModeList(self, BootModeList):
|
|
self.BootModeList = BootModeList
|
|
|
|
def GetBootModeList(self):
|
|
return self.BootModeList
|
|
|
|
def SetEventList(self, EventList):
|
|
self.EventList = EventList
|
|
|
|
def GetEventList(self):
|
|
return self.EventList
|
|
|
|
def SetHobList(self, HobList):
|
|
self.HobList = HobList
|
|
|
|
def GetHobList(self):
|
|
return self.HobList
|
|
|
|
def SetLibraryClassList(self, LibraryClassList):
|
|
self.LibraryClassList = LibraryClassList
|
|
|
|
def GetLibraryClassList(self):
|
|
return self.LibraryClassList
|
|
|
|
def SetSupArchList(self, SupArchList):
|
|
self.SupArchList = SupArchList
|
|
|
|
def GetSupArchList(self):
|
|
return self.SupArchList
|
|
|
|
##
|
|
# SourceFileObject
|
|
#
|
|
class SourceFileObject(CommonPropertiesObject):
|
|
def __init__(self):
|
|
CommonPropertiesObject.__init__(self)
|
|
self.SourceFile = ''
|
|
self.TagName = ''
|
|
self.ToolCode = ''
|
|
self.Family = ''
|
|
self.FileType = ''
|
|
|
|
def SetSourceFile(self, SourceFile):
|
|
self.SourceFile = SourceFile
|
|
|
|
def GetSourceFile(self):
|
|
return self.SourceFile
|
|
|
|
def SetTagName(self, TagName):
|
|
self.TagName = TagName
|
|
|
|
def GetTagName(self):
|
|
return self.TagName
|
|
|
|
def SetToolCode(self, ToolCode):
|
|
self.ToolCode = ToolCode
|
|
|
|
def GetToolCode(self):
|
|
return self.ToolCode
|
|
|
|
def SetFamily(self, Family):
|
|
self.Family = Family
|
|
|
|
def GetFamily(self):
|
|
return self.Family
|
|
|
|
def SetFileType(self, FileType):
|
|
self.FileType = FileType
|
|
|
|
def GetFileType(self):
|
|
return self.FileType
|
|
|
|
|
|
##
|
|
# BinaryFileObject
|
|
#
|
|
class BinaryFileObject(CommonPropertiesObject):
|
|
def __init__(self):
|
|
self.FileNamList = []
|
|
self.AsBuiltList = []
|
|
CommonPropertiesObject.__init__(self)
|
|
|
|
def SetFileNameList(self, FileNamList):
|
|
self.FileNamList = FileNamList
|
|
|
|
def GetFileNameList(self):
|
|
return self.FileNamList
|
|
|
|
def SetAsBuiltList(self, AsBuiltList):
|
|
self.AsBuiltList = AsBuiltList
|
|
|
|
def GetAsBuiltList(self):
|
|
return self.AsBuiltList
|
|
|
|
|
|
##
|
|
# AsBuildLibraryClassObject
|
|
#
|
|
class AsBuildLibraryClassObject(object):
|
|
def __init__(self):
|
|
self.LibGuid = ''
|
|
self.LibVersion = ''
|
|
self.SupArchList = []
|
|
|
|
def SetLibGuid(self, LibGuid):
|
|
self.LibGuid = LibGuid
|
|
def GetLibGuid(self):
|
|
return self.LibGuid
|
|
|
|
def SetLibVersion(self, LibVersion):
|
|
self.LibVersion = LibVersion
|
|
def GetLibVersion(self):
|
|
return self.LibVersion
|
|
|
|
def SetSupArchList(self, SupArchList):
|
|
self.SupArchList = SupArchList
|
|
def GetSupArchList(self):
|
|
return self.SupArchList
|
|
|
|
##
|
|
# AsBuiltObject
|
|
#
|
|
class AsBuiltObject(object):
|
|
def __init__(self):
|
|
#
|
|
# list of PcdObject
|
|
#
|
|
self.PatchPcdList = []
|
|
#
|
|
# list of PcdObject
|
|
#
|
|
self.PcdExValueList = []
|
|
#
|
|
# list of GuidVersionObject
|
|
#
|
|
self.LibraryInstancesList = []
|
|
#
|
|
# List of BinaryBuildFlag object
|
|
#
|
|
self.BinaryBuildFlagList = []
|
|
|
|
def SetPatchPcdList(self, PatchPcdList):
|
|
self.PatchPcdList = PatchPcdList
|
|
|
|
def GetPatchPcdList(self):
|
|
return self.PatchPcdList
|
|
|
|
def SetPcdExList(self, PcdExValueList):
|
|
self.PcdExValueList = PcdExValueList
|
|
|
|
def GetPcdExList(self):
|
|
return self.PcdExValueList
|
|
|
|
def SetLibraryInstancesList(self, LibraryInstancesList):
|
|
self.LibraryInstancesList = LibraryInstancesList
|
|
|
|
def GetLibraryInstancesList(self):
|
|
return self.LibraryInstancesList
|
|
|
|
def SetBuildFlagsList(self, BinaryBuildFlagList):
|
|
self.BinaryBuildFlagList = BinaryBuildFlagList
|
|
|
|
def GetBuildFlagsList(self):
|
|
return self.BinaryBuildFlagList
|
|
|
|
##
|
|
# BinaryBuildFlag, this object will include those fields that are not
|
|
# covered by the UPT Spec BinaryFile field
|
|
#
|
|
class BinaryBuildFlagObject(object):
|
|
def __init__(self):
|
|
self.Target = ''
|
|
self.TagName = ''
|
|
self.Family = ''
|
|
self.AsBuiltOptionFlags = ''
|
|
|
|
def SetTarget(self, Target):
|
|
self.Target = Target
|
|
|
|
def GetTarget(self):
|
|
return self.Target
|
|
|
|
def SetTagName(self, TagName):
|
|
self.TagName = TagName
|
|
|
|
def GetTagName(self):
|
|
return self.TagName
|
|
|
|
def SetFamily(self, Family):
|
|
self.Family = Family
|
|
|
|
def GetFamily(self):
|
|
return self.Family
|
|
|
|
def SetAsBuiltOptionFlags(self, AsBuiltOptionFlags):
|
|
self.AsBuiltOptionFlags = AsBuiltOptionFlags
|
|
def GetAsBuiltOptionFlags(self):
|
|
return self.AsBuiltOptionFlags
|
|
|
|
##
|
|
# ExternObject
|
|
#
|
|
class ExternObject(CommonPropertiesObject):
|
|
def __init__(self):
|
|
self.EntryPoint = ''
|
|
self.UnloadImage = ''
|
|
self.Constructor = ''
|
|
self.Destructor = ''
|
|
self.SupModList = []
|
|
CommonPropertiesObject.__init__(self)
|
|
|
|
def SetEntryPoint(self, EntryPoint):
|
|
self.EntryPoint = EntryPoint
|
|
|
|
def GetEntryPoint(self):
|
|
return self.EntryPoint
|
|
|
|
def SetUnloadImage(self, UnloadImage):
|
|
self.UnloadImage = UnloadImage
|
|
|
|
def GetUnloadImage(self):
|
|
return self.UnloadImage
|
|
|
|
def SetConstructor(self, Constructor):
|
|
self.Constructor = Constructor
|
|
|
|
def GetConstructor(self):
|
|
return self.Constructor
|
|
|
|
def SetDestructor(self, Destructor):
|
|
self.Destructor = Destructor
|
|
|
|
def GetDestructor(self):
|
|
return self.Destructor
|
|
|
|
def SetSupModList(self, SupModList):
|
|
self.SupModList = SupModList
|
|
def GetSupModList(self):
|
|
return self.SupModList
|
|
|
|
##
|
|
# DepexObject
|
|
#
|
|
class DepexObject(CommonPropertiesObject):
|
|
def __init__(self):
|
|
self.Depex = ''
|
|
self.ModuelType = ''
|
|
CommonPropertiesObject.__init__(self)
|
|
|
|
def SetDepex(self, Depex):
|
|
self.Depex = Depex
|
|
|
|
def GetDepex(self):
|
|
return self.Depex
|
|
|
|
def SetModuleType(self, ModuleType):
|
|
self.ModuelType = ModuleType
|
|
|
|
def GetModuleType(self):
|
|
return self.ModuelType
|
|
|
|
##
|
|
# PackageDependencyObject
|
|
#
|
|
class PackageDependencyObject(GuidVersionObject, CommonPropertiesObject):
|
|
def __init__(self):
|
|
self.Package = ''
|
|
self.PackageFilePath = ''
|
|
GuidVersionObject.__init__(self)
|
|
CommonPropertiesObject.__init__(self)
|
|
|
|
def SetPackageFilePath(self, PackageFilePath):
|
|
self.PackageFilePath = PackageFilePath
|
|
|
|
def GetPackageFilePath(self):
|
|
return self.PackageFilePath
|
|
|
|
def SetPackage(self, Package):
|
|
self.Package = Package
|
|
|
|
def GetPackage(self):
|
|
return self.Package
|
|
|
|
##
|
|
# BuildOptionObject
|
|
#
|
|
class BuildOptionObject(CommonPropertiesObject):
|
|
def __init__(self):
|
|
CommonPropertiesObject.__init__(self)
|
|
self.BuildOption = ''
|
|
|
|
def SetBuildOption(self, BuildOption):
|
|
self.BuildOption = BuildOption
|
|
|
|
def GetBuildOption(self):
|
|
return self.BuildOption
|
|
|
|
##
|
|
# ModuleObject
|
|
#
|
|
class ModuleObject(ModuleHeaderObject):
|
|
def __init__(self):
|
|
#
|
|
# {Arch : ModuleHeaderObject}
|
|
#
|
|
self.HeaderDict = {}
|
|
#
|
|
# LibraryClassObject
|
|
#
|
|
self.LibraryClassList = []
|
|
#
|
|
# SourceFileObject
|
|
#
|
|
self.SourceFileList = []
|
|
#
|
|
# BinaryFileObject
|
|
#
|
|
self.BinaryFileList = []
|
|
#
|
|
# PackageDependencyObject
|
|
#
|
|
self.PackageDependencyList = []
|
|
#
|
|
# DepexObject
|
|
#
|
|
self.PeiDepex = []
|
|
#
|
|
# DepexObject
|
|
#
|
|
self.DxeDepex = []
|
|
#
|
|
# DepexObject
|
|
#
|
|
self.SmmDepex = []
|
|
#
|
|
# ProtocolObject
|
|
#
|
|
self.ProtocolList = []
|
|
#
|
|
# PpiObject
|
|
#
|
|
self.PpiList = []
|
|
#
|
|
# GuidObject
|
|
#
|
|
self.GuidList = []
|
|
#
|
|
# PcdObject
|
|
#
|
|
self.PcdList = []
|
|
#
|
|
# ExternObject
|
|
#
|
|
self.ExternList = []
|
|
#
|
|
# BuildOptionObject
|
|
#
|
|
self.BuildOptionList = []
|
|
#
|
|
# UserExtensionObject
|
|
#
|
|
self.UserExtensionList = []
|
|
#
|
|
# MiscFileObject
|
|
#
|
|
self.MiscFileList = []
|
|
#
|
|
# ClonedFromObject
|
|
#
|
|
self.ClonedFrom = None
|
|
|
|
ModuleHeaderObject.__init__(self)
|
|
|
|
def SetHeaderDict(self, HeaderDict):
|
|
self.HeaderDict = HeaderDict
|
|
|
|
def GetHeaderDict(self):
|
|
return self.HeaderDict
|
|
|
|
def SetLibraryClassList(self, LibraryClassList):
|
|
self.LibraryClassList = LibraryClassList
|
|
|
|
def GetLibraryClassList(self):
|
|
return self.LibraryClassList
|
|
|
|
def SetSourceFileList(self, SourceFileList):
|
|
self.SourceFileList = SourceFileList
|
|
|
|
def GetSourceFileList(self):
|
|
return self.SourceFileList
|
|
|
|
def SetBinaryFileList(self, BinaryFileList):
|
|
self.BinaryFileList = BinaryFileList
|
|
|
|
def GetBinaryFileList(self):
|
|
return self.BinaryFileList
|
|
|
|
def SetPackageDependencyList(self, PackageDependencyList):
|
|
self.PackageDependencyList = PackageDependencyList
|
|
|
|
def GetPackageDependencyList(self):
|
|
return self.PackageDependencyList
|
|
|
|
def SetPeiDepex(self, PeiDepex):
|
|
self.PeiDepex = PeiDepex
|
|
|
|
def GetPeiDepex(self):
|
|
return self.PeiDepex
|
|
|
|
def SetDxeDepex(self, DxeDepex):
|
|
self.DxeDepex = DxeDepex
|
|
|
|
def GetDxeDepex(self):
|
|
return self.DxeDepex
|
|
|
|
def SetSmmDepex(self, SmmDepex):
|
|
self.SmmDepex = SmmDepex
|
|
|
|
def GetSmmDepex(self):
|
|
return self.SmmDepex
|
|
|
|
def SetPpiList(self, PpiList):
|
|
self.PpiList = PpiList
|
|
|
|
def GetPpiList(self):
|
|
return self.PpiList
|
|
|
|
def SetProtocolList(self, ProtocolList):
|
|
self.ProtocolList = ProtocolList
|
|
|
|
def GetProtocolList(self):
|
|
return self.ProtocolList
|
|
|
|
def SetPcdList(self, PcdList):
|
|
self.PcdList = PcdList
|
|
|
|
def GetPcdList(self):
|
|
return self.PcdList
|
|
|
|
def SetGuidList(self, GuidList):
|
|
self.GuidList = GuidList
|
|
|
|
def GetGuidList(self):
|
|
return self.GuidList
|
|
|
|
def SetExternList(self, ExternList):
|
|
self.ExternList = ExternList
|
|
|
|
def GetExternList(self):
|
|
return self.ExternList
|
|
|
|
def SetBuildOptionList(self, BuildOptionList):
|
|
self.BuildOptionList = BuildOptionList
|
|
|
|
def GetBuildOptionList(self):
|
|
return self.BuildOptionList
|
|
|
|
def SetUserExtensionList(self, UserExtensionList):
|
|
self.UserExtensionList = UserExtensionList
|
|
|
|
def GetUserExtensionList(self):
|
|
return self.UserExtensionList
|
|
|
|
def SetMiscFileList(self, MiscFileList):
|
|
self.MiscFileList = MiscFileList
|
|
|
|
def GetMiscFileList(self):
|
|
return self.MiscFileList
|
|
|
|
def SetClonedFrom(self, ClonedFrom):
|
|
self.ClonedFrom = ClonedFrom
|
|
|
|
def GetClonedFrom(self):
|
|
return self.ClonedFrom
|