BaseTools: Workspace classes refactor properties
1) use decorators 2) also change some private functions to public when all callers are external 3) change external callers to use functions instead of directly accessing private data. Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
committed by
Yonghong Zhu
parent
6c204ed4f2
commit
71cac3f791
@ -341,9 +341,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||||||
self.InfModule = Inf
|
self.InfModule = Inf
|
||||||
self.PcdIsDriver = Inf.PcdIsDriver
|
self.PcdIsDriver = Inf.PcdIsDriver
|
||||||
self.IsBinaryModule = Inf.IsBinaryModule
|
self.IsBinaryModule = Inf.IsBinaryModule
|
||||||
Inf._GetDepex()
|
if len(Inf.Depex.data) > 0 and len(Inf.DepexExpression.data) > 0:
|
||||||
Inf._GetDepexExpression()
|
|
||||||
if len(Inf._Depex.data) > 0 and len(Inf._DepexExpression.data) > 0:
|
|
||||||
self.Depex = True
|
self.Depex = True
|
||||||
|
|
||||||
GenFdsGlobalVariable.VerboseLogger("BaseName : %s" % self.BaseName)
|
GenFdsGlobalVariable.VerboseLogger("BaseName : %s" % self.BaseName)
|
||||||
|
@ -99,21 +99,22 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
self._CommonIncludes = None
|
self._CommonIncludes = None
|
||||||
self._LibraryClasses = None
|
self._LibraryClasses = None
|
||||||
self._Pcds = None
|
self._Pcds = None
|
||||||
self.__Macros = None
|
self._MacroDict = None
|
||||||
self._PrivateProtocols = None
|
self._PrivateProtocols = None
|
||||||
self._PrivatePpis = None
|
self._PrivatePpis = None
|
||||||
self._PrivateGuids = None
|
self._PrivateGuids = None
|
||||||
self._PrivateIncludes = None
|
self._PrivateIncludes = None
|
||||||
|
|
||||||
## Get current effective macros
|
## Get current effective macros
|
||||||
def _GetMacros(self):
|
@property
|
||||||
if self.__Macros is None:
|
def _Macros(self):
|
||||||
self.__Macros = {}
|
if self._MacroDict is None:
|
||||||
self.__Macros.update(GlobalData.gGlobalDefines)
|
self._MacroDict = dict(GlobalData.gGlobalDefines)
|
||||||
return self.__Macros
|
return self._MacroDict
|
||||||
|
|
||||||
## Get architecture
|
## Get architecture
|
||||||
def _GetArch(self):
|
@property
|
||||||
|
def Arch(self):
|
||||||
return self._Arch
|
return self._Arch
|
||||||
|
|
||||||
## Retrieve all information in [Defines] section
|
## Retrieve all information in [Defines] section
|
||||||
@ -129,7 +130,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
self._Header = 'DUMMY'
|
self._Header = 'DUMMY'
|
||||||
|
|
||||||
## Retrieve package name
|
## Retrieve package name
|
||||||
def _GetPackageName(self):
|
@property
|
||||||
|
def PackageName(self):
|
||||||
if self._PackageName is None:
|
if self._PackageName is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -138,7 +140,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._PackageName
|
return self._PackageName
|
||||||
|
|
||||||
## Retrieve file guid
|
## Retrieve file guid
|
||||||
def _GetFileGuid(self):
|
@property
|
||||||
|
def PackageName(self):
|
||||||
if self._Guid is None:
|
if self._Guid is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -147,7 +150,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Guid
|
return self._Guid
|
||||||
|
|
||||||
## Retrieve package version
|
## Retrieve package version
|
||||||
def _GetVersion(self):
|
@property
|
||||||
|
def Version(self):
|
||||||
if self._Version is None:
|
if self._Version is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -156,7 +160,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Version
|
return self._Version
|
||||||
|
|
||||||
## Retrieve protocol definitions (name/value pairs)
|
## Retrieve protocol definitions (name/value pairs)
|
||||||
def _GetProtocol(self):
|
@property
|
||||||
|
def Protocols(self):
|
||||||
if self._Protocols is None:
|
if self._Protocols is None:
|
||||||
#
|
#
|
||||||
# tdict is a special kind of dict, used for selecting correct
|
# tdict is a special kind of dict, used for selecting correct
|
||||||
@ -198,7 +203,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Protocols
|
return self._Protocols
|
||||||
|
|
||||||
## Retrieve PPI definitions (name/value pairs)
|
## Retrieve PPI definitions (name/value pairs)
|
||||||
def _GetPpi(self):
|
@property
|
||||||
|
def Ppis(self):
|
||||||
if self._Ppis is None:
|
if self._Ppis is None:
|
||||||
#
|
#
|
||||||
# tdict is a special kind of dict, used for selecting correct
|
# tdict is a special kind of dict, used for selecting correct
|
||||||
@ -240,7 +246,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Ppis
|
return self._Ppis
|
||||||
|
|
||||||
## Retrieve GUID definitions (name/value pairs)
|
## Retrieve GUID definitions (name/value pairs)
|
||||||
def _GetGuid(self):
|
@property
|
||||||
|
def Guids(self):
|
||||||
if self._Guids is None:
|
if self._Guids is None:
|
||||||
#
|
#
|
||||||
# tdict is a special kind of dict, used for selecting correct
|
# tdict is a special kind of dict, used for selecting correct
|
||||||
@ -282,7 +289,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Guids
|
return self._Guids
|
||||||
|
|
||||||
## Retrieve public include paths declared in this package
|
## Retrieve public include paths declared in this package
|
||||||
def _GetInclude(self):
|
@property
|
||||||
|
def Includes(self):
|
||||||
if self._Includes is None or self._CommonIncludes is None:
|
if self._Includes is None or self._CommonIncludes is None:
|
||||||
self._CommonIncludes = []
|
self._CommonIncludes = []
|
||||||
self._Includes = []
|
self._Includes = []
|
||||||
@ -317,7 +325,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._Includes
|
return self._Includes
|
||||||
|
|
||||||
## Retrieve library class declarations (not used in build at present)
|
## Retrieve library class declarations (not used in build at present)
|
||||||
def _GetLibraryClass(self):
|
@property
|
||||||
|
def LibraryClasses(self):
|
||||||
if self._LibraryClasses is None:
|
if self._LibraryClasses is None:
|
||||||
#
|
#
|
||||||
# tdict is a special kind of dict, used for selecting correct
|
# tdict is a special kind of dict, used for selecting correct
|
||||||
@ -341,7 +350,8 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
return self._LibraryClasses
|
return self._LibraryClasses
|
||||||
|
|
||||||
## Retrieve PCD declarations
|
## Retrieve PCD declarations
|
||||||
def _GetPcds(self):
|
@property
|
||||||
|
def Pcds(self):
|
||||||
if self._Pcds is None:
|
if self._Pcds is None:
|
||||||
self._Pcds = OrderedDict()
|
self._Pcds = OrderedDict()
|
||||||
self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))
|
self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))
|
||||||
@ -351,7 +361,6 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
self._Pcds.update(self._GetPcd(MODEL_PCD_DYNAMIC_EX))
|
self._Pcds.update(self._GetPcd(MODEL_PCD_DYNAMIC_EX))
|
||||||
return self._Pcds
|
return self._Pcds
|
||||||
|
|
||||||
|
|
||||||
def ProcessStructurePcd(self, StructurePcdRawDataSet):
|
def ProcessStructurePcd(self, StructurePcdRawDataSet):
|
||||||
s_pcd_set = OrderedDict()
|
s_pcd_set = OrderedDict()
|
||||||
for s_pcd, LineNo in StructurePcdRawDataSet:
|
for s_pcd, LineNo in StructurePcdRawDataSet:
|
||||||
@ -446,22 +455,9 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName, struct_pcd.DefinitionPosition[0], struct_pcd.DefinitionPosition[1] ))
|
EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName, struct_pcd.DefinitionPosition[0], struct_pcd.DefinitionPosition[1] ))
|
||||||
|
|
||||||
return Pcds
|
return Pcds
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CommonIncludes(self):
|
def CommonIncludes(self):
|
||||||
if self._CommonIncludes is None:
|
if self._CommonIncludes is None:
|
||||||
self.Includes
|
self.Includes
|
||||||
return self._CommonIncludes
|
return self._CommonIncludes
|
||||||
|
|
||||||
|
|
||||||
_Macros = property(_GetMacros)
|
|
||||||
Arch = property(_GetArch)
|
|
||||||
PackageName = property(_GetPackageName)
|
|
||||||
Guid = property(_GetFileGuid)
|
|
||||||
Version = property(_GetVersion)
|
|
||||||
|
|
||||||
Protocols = property(_GetProtocol)
|
|
||||||
Ppis = property(_GetPpi)
|
|
||||||
Guids = property(_GetGuid)
|
|
||||||
Includes = property(_GetInclude)
|
|
||||||
LibraryClasses = property(_GetLibraryClass)
|
|
||||||
Pcds = property(_GetPcds)
|
|
||||||
|
@ -222,6 +222,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""
|
self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""
|
||||||
self.DefaultStores = None
|
self.DefaultStores = None
|
||||||
self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)
|
self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def OutputPath(self):
|
def OutputPath(self):
|
||||||
if os.getenv("WORKSPACE"):
|
if os.getenv("WORKSPACE"):
|
||||||
@ -273,10 +274,9 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self._RFCLanguages = None
|
self._RFCLanguages = None
|
||||||
self._ISOLanguages = None
|
self._ISOLanguages = None
|
||||||
self._VpdToolGuid = None
|
self._VpdToolGuid = None
|
||||||
self.__Macros = None
|
self._MacroDict = None
|
||||||
self.DefaultStores = None
|
self.DefaultStores = None
|
||||||
|
|
||||||
|
|
||||||
## handle Override Path of Module
|
## handle Override Path of Module
|
||||||
def _HandleOverridePath(self):
|
def _HandleOverridePath(self):
|
||||||
RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch]
|
RecordList = self._RawData[MODEL_META_DATA_COMPONENT, self._Arch]
|
||||||
@ -296,16 +296,18 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
GlobalData.gOverrideDir[ModuleFile.Key] = SourceOverridePath
|
GlobalData.gOverrideDir[ModuleFile.Key] = SourceOverridePath
|
||||||
|
|
||||||
## Get current effective macros
|
## Get current effective macros
|
||||||
def _GetMacros(self):
|
@property
|
||||||
if self.__Macros is None:
|
def _Macros(self):
|
||||||
self.__Macros = {}
|
if self._MacroDict is None:
|
||||||
self.__Macros.update(GlobalData.gPlatformDefines)
|
self._MacroDict = {}
|
||||||
self.__Macros.update(GlobalData.gGlobalDefines)
|
self._MacroDict.update(GlobalData.gPlatformDefines)
|
||||||
self.__Macros.update(GlobalData.gCommandLineDefines)
|
self._MacroDict.update(GlobalData.gGlobalDefines)
|
||||||
return self.__Macros
|
self._MacroDict.update(GlobalData.gCommandLineDefines)
|
||||||
|
return self._MacroDict
|
||||||
|
|
||||||
## Get architecture
|
## Get architecture
|
||||||
def _GetArch(self):
|
@property
|
||||||
|
def Arch(self):
|
||||||
return self._Arch
|
return self._Arch
|
||||||
|
|
||||||
## Retrieve all information in [Defines] section
|
## Retrieve all information in [Defines] section
|
||||||
@ -410,7 +412,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self._Header = 'DUMMY'
|
self._Header = 'DUMMY'
|
||||||
|
|
||||||
## Retrieve platform name
|
## Retrieve platform name
|
||||||
def _GetPlatformName(self):
|
@property
|
||||||
|
def PlatformName(self):
|
||||||
if self._PlatformName is None:
|
if self._PlatformName is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -418,8 +421,13 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No PLATFORM_NAME", File=self.MetaFile)
|
EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No PLATFORM_NAME", File=self.MetaFile)
|
||||||
return self._PlatformName
|
return self._PlatformName
|
||||||
|
|
||||||
|
@property
|
||||||
|
def Platform(self):
|
||||||
|
return self.PlatformName
|
||||||
|
|
||||||
## Retrieve file guid
|
## Retrieve file guid
|
||||||
def _GetFileGuid(self):
|
@property
|
||||||
|
def Guid(self):
|
||||||
if self._Guid is None:
|
if self._Guid is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -428,7 +436,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._Guid
|
return self._Guid
|
||||||
|
|
||||||
## Retrieve platform version
|
## Retrieve platform version
|
||||||
def _GetVersion(self):
|
@property
|
||||||
|
def Version(self):
|
||||||
if self._Version is None:
|
if self._Version is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -437,7 +446,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._Version
|
return self._Version
|
||||||
|
|
||||||
## Retrieve platform description file version
|
## Retrieve platform description file version
|
||||||
def _GetDscSpec(self):
|
@property
|
||||||
|
def DscSpecification(self):
|
||||||
if self._DscSpecification is None:
|
if self._DscSpecification is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -446,7 +456,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._DscSpecification
|
return self._DscSpecification
|
||||||
|
|
||||||
## Retrieve OUTPUT_DIRECTORY
|
## Retrieve OUTPUT_DIRECTORY
|
||||||
def _GetOutpuDir(self):
|
@property
|
||||||
|
def OutputDirectory(self):
|
||||||
if self._OutputDirectory is None:
|
if self._OutputDirectory is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -455,7 +466,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._OutputDirectory
|
return self._OutputDirectory
|
||||||
|
|
||||||
## Retrieve SUPPORTED_ARCHITECTURES
|
## Retrieve SUPPORTED_ARCHITECTURES
|
||||||
def _GetSupArch(self):
|
@property
|
||||||
|
def SupArchList(self):
|
||||||
if self._SupArchList is None:
|
if self._SupArchList is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -464,7 +476,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._SupArchList
|
return self._SupArchList
|
||||||
|
|
||||||
## Retrieve BUILD_TARGETS
|
## Retrieve BUILD_TARGETS
|
||||||
def _GetBuildTarget(self):
|
@property
|
||||||
|
def BuildTargets(self):
|
||||||
if self._BuildTargets is None:
|
if self._BuildTargets is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -472,14 +485,17 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No BUILD_TARGETS", File=self.MetaFile)
|
EdkLogger.error('build', ATTRIBUTE_NOT_AVAILABLE, "No BUILD_TARGETS", File=self.MetaFile)
|
||||||
return self._BuildTargets
|
return self._BuildTargets
|
||||||
|
|
||||||
def _GetPcdInfoFlag(self):
|
@property
|
||||||
|
def PcdInfoFlag(self):
|
||||||
if self._PcdInfoFlag is None or self._PcdInfoFlag.upper() == 'FALSE':
|
if self._PcdInfoFlag is None or self._PcdInfoFlag.upper() == 'FALSE':
|
||||||
return False
|
return False
|
||||||
elif self._PcdInfoFlag.upper() == 'TRUE':
|
elif self._PcdInfoFlag.upper() == 'TRUE':
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
def _GetVarCheckFlag(self):
|
|
||||||
|
@property
|
||||||
|
def VarCheckFlag(self):
|
||||||
if self._VarCheckFlag is None or self._VarCheckFlag.upper() == 'FALSE':
|
if self._VarCheckFlag is None or self._VarCheckFlag.upper() == 'FALSE':
|
||||||
return False
|
return False
|
||||||
elif self._VarCheckFlag.upper() == 'TRUE':
|
elif self._VarCheckFlag.upper() == 'TRUE':
|
||||||
@ -488,7 +504,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# # Retrieve SKUID_IDENTIFIER
|
# # Retrieve SKUID_IDENTIFIER
|
||||||
def _GetSkuName(self):
|
@property
|
||||||
|
def SkuName(self):
|
||||||
if self._SkuName is None:
|
if self._SkuName is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -497,10 +514,12 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._SkuName
|
return self._SkuName
|
||||||
|
|
||||||
## Override SKUID_IDENTIFIER
|
## Override SKUID_IDENTIFIER
|
||||||
def _SetSkuName(self, Value):
|
@SkuName.setter
|
||||||
|
def SkuName(self, Value):
|
||||||
self._SkuName = Value
|
self._SkuName = Value
|
||||||
|
|
||||||
def _GetFdfFile(self):
|
@property
|
||||||
|
def FlashDefinition(self):
|
||||||
if self._FlashDefinition is None:
|
if self._FlashDefinition is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -508,7 +527,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self._FlashDefinition = ''
|
self._FlashDefinition = ''
|
||||||
return self._FlashDefinition
|
return self._FlashDefinition
|
||||||
|
|
||||||
def _GetPrebuild(self):
|
@property
|
||||||
|
def Prebuild(self):
|
||||||
if self._Prebuild is None:
|
if self._Prebuild is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -516,7 +536,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self._Prebuild = ''
|
self._Prebuild = ''
|
||||||
return self._Prebuild
|
return self._Prebuild
|
||||||
|
|
||||||
def _GetPostbuild(self):
|
@property
|
||||||
|
def Postbuild(self):
|
||||||
if self._Postbuild is None:
|
if self._Postbuild is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -525,7 +546,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._Postbuild
|
return self._Postbuild
|
||||||
|
|
||||||
## Retrieve FLASH_DEFINITION
|
## Retrieve FLASH_DEFINITION
|
||||||
def _GetBuildNumber(self):
|
@property
|
||||||
|
def BuildNumber(self):
|
||||||
if self._BuildNumber is None:
|
if self._BuildNumber is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -534,7 +556,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._BuildNumber
|
return self._BuildNumber
|
||||||
|
|
||||||
## Retrieve MAKEFILE_NAME
|
## Retrieve MAKEFILE_NAME
|
||||||
def _GetMakefileName(self):
|
@property
|
||||||
|
def MakefileName(self):
|
||||||
if self._MakefileName is None:
|
if self._MakefileName is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -543,7 +566,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._MakefileName
|
return self._MakefileName
|
||||||
|
|
||||||
## Retrieve BsBaseAddress
|
## Retrieve BsBaseAddress
|
||||||
def _GetBsBaseAddress(self):
|
@property
|
||||||
|
def BsBaseAddress(self):
|
||||||
if self._BsBaseAddress is None:
|
if self._BsBaseAddress is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -552,7 +576,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._BsBaseAddress
|
return self._BsBaseAddress
|
||||||
|
|
||||||
## Retrieve RtBaseAddress
|
## Retrieve RtBaseAddress
|
||||||
def _GetRtBaseAddress(self):
|
@property
|
||||||
|
def RtBaseAddress(self):
|
||||||
if self._RtBaseAddress is None:
|
if self._RtBaseAddress is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -561,7 +586,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._RtBaseAddress
|
return self._RtBaseAddress
|
||||||
|
|
||||||
## Retrieve the top address for the load fix address
|
## Retrieve the top address for the load fix address
|
||||||
def _GetLoadFixAddress(self):
|
@property
|
||||||
|
def LoadFixAddress(self):
|
||||||
if self._LoadFixAddress is None:
|
if self._LoadFixAddress is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -591,7 +617,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._LoadFixAddress
|
return self._LoadFixAddress
|
||||||
|
|
||||||
## Retrieve RFCLanguage filter
|
## Retrieve RFCLanguage filter
|
||||||
def _GetRFCLanguages(self):
|
@property
|
||||||
|
def RFCLanguages(self):
|
||||||
if self._RFCLanguages is None:
|
if self._RFCLanguages is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -600,15 +627,18 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._RFCLanguages
|
return self._RFCLanguages
|
||||||
|
|
||||||
## Retrieve ISOLanguage filter
|
## Retrieve ISOLanguage filter
|
||||||
def _GetISOLanguages(self):
|
@property
|
||||||
|
def ISOLanguages(self):
|
||||||
if self._ISOLanguages is None:
|
if self._ISOLanguages is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
if self._ISOLanguages is None:
|
if self._ISOLanguages is None:
|
||||||
self._ISOLanguages = []
|
self._ISOLanguages = []
|
||||||
return self._ISOLanguages
|
return self._ISOLanguages
|
||||||
|
|
||||||
## Retrieve the GUID string for VPD tool
|
## Retrieve the GUID string for VPD tool
|
||||||
def _GetVpdToolGuid(self):
|
@property
|
||||||
|
def VpdToolGuid(self):
|
||||||
if self._VpdToolGuid is None:
|
if self._VpdToolGuid is None:
|
||||||
if self._Header is None:
|
if self._Header is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -617,7 +647,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._VpdToolGuid
|
return self._VpdToolGuid
|
||||||
|
|
||||||
## Retrieve [SkuIds] section information
|
## Retrieve [SkuIds] section information
|
||||||
def _GetSkuIds(self):
|
@property
|
||||||
|
def SkuIds(self):
|
||||||
if self._SkuIds is None:
|
if self._SkuIds is None:
|
||||||
self._SkuIds = OrderedDict()
|
self._SkuIds = OrderedDict()
|
||||||
RecordList = self._RawData[MODEL_EFI_SKU_ID, self._Arch]
|
RecordList = self._RawData[MODEL_EFI_SKU_ID, self._Arch]
|
||||||
@ -669,7 +700,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self.DefaultStores
|
return self.DefaultStores
|
||||||
|
|
||||||
## Retrieve [Components] section information
|
## Retrieve [Components] section information
|
||||||
def _GetModules(self):
|
@property
|
||||||
|
def Modules(self):
|
||||||
if self._Modules is not None:
|
if self._Modules is not None:
|
||||||
return self._Modules
|
return self._Modules
|
||||||
|
|
||||||
@ -768,13 +800,15 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._Modules
|
return self._Modules
|
||||||
|
|
||||||
## Retrieve all possible library instances used in this platform
|
## Retrieve all possible library instances used in this platform
|
||||||
def _GetLibraryInstances(self):
|
@property
|
||||||
|
def LibraryInstances(self):
|
||||||
if self._LibraryInstances is None:
|
if self._LibraryInstances is None:
|
||||||
self._GetLibraryClasses()
|
self.LibraryClasses
|
||||||
return self._LibraryInstances
|
return self._LibraryInstances
|
||||||
|
|
||||||
## Retrieve [LibraryClasses] information
|
## Retrieve [LibraryClasses] information
|
||||||
def _GetLibraryClasses(self):
|
@property
|
||||||
|
def LibraryClasses(self):
|
||||||
if self._LibraryClasses is None:
|
if self._LibraryClasses is None:
|
||||||
self._LibraryInstances = []
|
self._LibraryInstances = []
|
||||||
#
|
#
|
||||||
@ -922,6 +956,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
if isinstance(pcd, StructurePcd) and pcd.SkuOverrideValues:
|
if isinstance(pcd, StructurePcd) and pcd.SkuOverrideValues:
|
||||||
Pcds[pcdname].SkuOverrideValues = {skuid:pcd.SkuOverrideValues[skuid] for skuid in pcd.SkuOverrideValues if skuid in available_sku}
|
Pcds[pcdname].SkuOverrideValues = {skuid:pcd.SkuOverrideValues[skuid] for skuid in pcd.SkuOverrideValues if skuid in available_sku}
|
||||||
return Pcds
|
return Pcds
|
||||||
|
|
||||||
def CompleteHiiPcdsDefaultStores(self, Pcds):
|
def CompleteHiiPcdsDefaultStores(self, Pcds):
|
||||||
HiiPcd = [Pcds[pcd] for pcd in Pcds if Pcds[pcd].Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]]
|
HiiPcd = [Pcds[pcd] for pcd in Pcds if Pcds[pcd].Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]]
|
||||||
DefaultStoreMgr = DefaultStore(self.DefaultStores)
|
DefaultStoreMgr = DefaultStore(self.DefaultStores)
|
||||||
@ -1102,7 +1137,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return PcdValue
|
return PcdValue
|
||||||
|
|
||||||
## Retrieve all PCD settings in platform
|
## Retrieve all PCD settings in platform
|
||||||
def _GetPcds(self):
|
@property
|
||||||
|
def Pcds(self):
|
||||||
if self._Pcds is None:
|
if self._Pcds is None:
|
||||||
self._Pcds = OrderedDict()
|
self._Pcds = OrderedDict()
|
||||||
self.__ParsePcdFromCommandLine()
|
self.__ParsePcdFromCommandLine()
|
||||||
@ -1127,7 +1163,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
return self._Pcds
|
return self._Pcds
|
||||||
|
|
||||||
## Retrieve [BuildOptions]
|
## Retrieve [BuildOptions]
|
||||||
def _GetBuildOptions(self):
|
@property
|
||||||
|
def BuildOptions(self):
|
||||||
if self._BuildOptions is None:
|
if self._BuildOptions is None:
|
||||||
self._BuildOptions = OrderedDict()
|
self._BuildOptions = OrderedDict()
|
||||||
#
|
#
|
||||||
@ -1226,7 +1263,6 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]
|
Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]
|
||||||
return StruPcds
|
return StruPcds
|
||||||
|
|
||||||
|
|
||||||
def OverrideByCommOverAll(self,AllPcds):
|
def OverrideByCommOverAll(self,AllPcds):
|
||||||
def CheckStructureInComm(commpcds):
|
def CheckStructureInComm(commpcds):
|
||||||
if not commpcds:
|
if not commpcds:
|
||||||
@ -2799,7 +2835,8 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
Module.MetaFile = FilePath
|
Module.MetaFile = FilePath
|
||||||
self.Modules.append(Module)
|
self.Modules.append(Module)
|
||||||
|
|
||||||
def _GetToolChainFamily(self):
|
@property
|
||||||
|
def ToolChainFamily(self):
|
||||||
self._ToolChainFamily = TAB_COMPILER_MSFT
|
self._ToolChainFamily = TAB_COMPILER_MSFT
|
||||||
BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, "target.txt"))
|
BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, "target.txt"))
|
||||||
if os.path.isfile(BuildConfigurationFile) == True:
|
if os.path.isfile(BuildConfigurationFile) == True:
|
||||||
@ -2834,6 +2871,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
if (Name, Guid) not in self.Pcds:
|
if (Name, Guid) not in self.Pcds:
|
||||||
self.Pcds[Name, Guid] = PcdClassObject(Name, Guid, '', '', '', '', '', {}, False, None)
|
self.Pcds[Name, Guid] = PcdClassObject(Name, Guid, '', '', '', '', '', {}, False, None)
|
||||||
self.Pcds[Name, Guid].DefaultValue = Value
|
self.Pcds[Name, Guid].DefaultValue = Value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def DecPcds(self):
|
def DecPcds(self):
|
||||||
if self._DecPcds is None:
|
if self._DecPcds is None:
|
||||||
@ -2849,34 +2887,3 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
PkgSet.update(ModuleData.Packages)
|
PkgSet.update(ModuleData.Packages)
|
||||||
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)
|
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)
|
||||||
return self._DecPcds
|
return self._DecPcds
|
||||||
_Macros = property(_GetMacros)
|
|
||||||
Arch = property(_GetArch)
|
|
||||||
Platform = property(_GetPlatformName)
|
|
||||||
PlatformName = property(_GetPlatformName)
|
|
||||||
Guid = property(_GetFileGuid)
|
|
||||||
Version = property(_GetVersion)
|
|
||||||
DscSpecification = property(_GetDscSpec)
|
|
||||||
OutputDirectory = property(_GetOutpuDir)
|
|
||||||
SupArchList = property(_GetSupArch)
|
|
||||||
BuildTargets = property(_GetBuildTarget)
|
|
||||||
SkuName = property(_GetSkuName, _SetSkuName)
|
|
||||||
PcdInfoFlag = property(_GetPcdInfoFlag)
|
|
||||||
VarCheckFlag = property(_GetVarCheckFlag)
|
|
||||||
FlashDefinition = property(_GetFdfFile)
|
|
||||||
Prebuild = property(_GetPrebuild)
|
|
||||||
Postbuild = property(_GetPostbuild)
|
|
||||||
BuildNumber = property(_GetBuildNumber)
|
|
||||||
MakefileName = property(_GetMakefileName)
|
|
||||||
BsBaseAddress = property(_GetBsBaseAddress)
|
|
||||||
RtBaseAddress = property(_GetRtBaseAddress)
|
|
||||||
LoadFixAddress = property(_GetLoadFixAddress)
|
|
||||||
RFCLanguages = property(_GetRFCLanguages)
|
|
||||||
ISOLanguages = property(_GetISOLanguages)
|
|
||||||
VpdToolGuid = property(_GetVpdToolGuid)
|
|
||||||
SkuIds = property(_GetSkuIds)
|
|
||||||
Modules = property(_GetModules)
|
|
||||||
LibraryInstances = property(_GetLibraryInstances)
|
|
||||||
LibraryClasses = property(_GetLibraryClasses)
|
|
||||||
Pcds = property(_GetPcds)
|
|
||||||
BuildOptions = property(_GetBuildOptions)
|
|
||||||
ToolChainFamily = property(_GetToolChainFamily)
|
|
||||||
|
@ -157,40 +157,42 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._BuildOptions = None
|
self._BuildOptions = None
|
||||||
self._Depex = None
|
self._Depex = None
|
||||||
self._DepexExpression = None
|
self._DepexExpression = None
|
||||||
self.__Macros = None
|
self._MacroDict = None
|
||||||
|
|
||||||
## Get current effective macros
|
## Get current effective macros
|
||||||
def _GetMacros(self):
|
@property
|
||||||
if self.__Macros is None:
|
def _Macros(self):
|
||||||
self.__Macros = {}
|
if self._MacroDict is None:
|
||||||
|
self._MacroDict = {}
|
||||||
# EDK_GLOBAL defined macros can be applied to EDK module
|
# EDK_GLOBAL defined macros can be applied to EDK module
|
||||||
if self.AutoGenVersion < 0x00010005:
|
if self.AutoGenVersion < 0x00010005:
|
||||||
self.__Macros.update(GlobalData.gEdkGlobal)
|
self._MacroDict.update(GlobalData.gEdkGlobal)
|
||||||
self.__Macros.update(GlobalData.gGlobalDefines)
|
self._MacroDict.update(GlobalData.gGlobalDefines)
|
||||||
return self.__Macros
|
return self._MacroDict
|
||||||
|
|
||||||
## Get architecture
|
## Get architecture
|
||||||
def _GetArch(self):
|
@property
|
||||||
|
def Arch(self):
|
||||||
return self._Arch
|
return self._Arch
|
||||||
|
|
||||||
## Return the name of platform employing this module
|
## Return the name of platform employing this module
|
||||||
def _GetPlatform(self):
|
@property
|
||||||
|
def Platform(self):
|
||||||
return self._Platform
|
return self._Platform
|
||||||
|
|
||||||
def _GetHeaderComments(self):
|
|
||||||
|
@property
|
||||||
|
def HeaderComments(self):
|
||||||
if not self._HeaderComments:
|
if not self._HeaderComments:
|
||||||
self._HeaderComments = []
|
self._HeaderComments = [a[0] for a in self._RawData[MODEL_META_DATA_HEADER_COMMENT]]
|
||||||
RecordList = self._RawData[MODEL_META_DATA_HEADER_COMMENT]
|
|
||||||
for Record in RecordList:
|
|
||||||
self._HeaderComments.append(Record[0])
|
|
||||||
return self._HeaderComments
|
return self._HeaderComments
|
||||||
def _GetTailComments(self):
|
|
||||||
|
@property
|
||||||
|
def TailComments(self):
|
||||||
if not self._TailComments:
|
if not self._TailComments:
|
||||||
self._TailComments = []
|
self._TailComments = [a[0] for a in self._RawData[MODEL_META_DATA_TAIL_COMMENT]]
|
||||||
RecordList = self._RawData[MODEL_META_DATA_TAIL_COMMENT]
|
|
||||||
for Record in RecordList:
|
|
||||||
self._TailComments.append(Record[0])
|
|
||||||
return self._TailComments
|
return self._TailComments
|
||||||
|
|
||||||
## Retrieve all information in [Defines] section
|
## Retrieve all information in [Defines] section
|
||||||
#
|
#
|
||||||
# (Retriving all [Defines] information in one-shot is just to save time.)
|
# (Retriving all [Defines] information in one-shot is just to save time.)
|
||||||
@ -371,7 +373,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._Header_ = 'DUMMY'
|
self._Header_ = 'DUMMY'
|
||||||
|
|
||||||
## Retrieve file version
|
## Retrieve file version
|
||||||
def _GetInfVersion(self):
|
@property
|
||||||
|
def AutoGenVersion(self):
|
||||||
if self._AutoGenVersion is None:
|
if self._AutoGenVersion is None:
|
||||||
RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform]
|
RecordList = self._RawData[MODEL_META_DATA_HEADER, self._Arch, self._Platform]
|
||||||
for Record in RecordList:
|
for Record in RecordList:
|
||||||
@ -389,7 +392,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._AutoGenVersion
|
return self._AutoGenVersion
|
||||||
|
|
||||||
## Retrieve BASE_NAME
|
## Retrieve BASE_NAME
|
||||||
def _GetBaseName(self):
|
@property
|
||||||
|
def BaseName(self):
|
||||||
if self._BaseName is None:
|
if self._BaseName is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -398,7 +402,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._BaseName
|
return self._BaseName
|
||||||
|
|
||||||
## Retrieve DxsFile
|
## Retrieve DxsFile
|
||||||
def _GetDxsFile(self):
|
@property
|
||||||
|
def DxsFile(self):
|
||||||
if self._DxsFile is None:
|
if self._DxsFile is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -407,7 +412,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._DxsFile
|
return self._DxsFile
|
||||||
|
|
||||||
## Retrieve MODULE_TYPE
|
## Retrieve MODULE_TYPE
|
||||||
def _GetModuleType(self):
|
@property
|
||||||
|
def ModuleType(self):
|
||||||
if self._ModuleType is None:
|
if self._ModuleType is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -418,7 +424,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._ModuleType
|
return self._ModuleType
|
||||||
|
|
||||||
## Retrieve COMPONENT_TYPE
|
## Retrieve COMPONENT_TYPE
|
||||||
def _GetComponentType(self):
|
@property
|
||||||
|
def ComponentType(self):
|
||||||
if self._ComponentType is None:
|
if self._ComponentType is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -427,7 +434,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._ComponentType
|
return self._ComponentType
|
||||||
|
|
||||||
## Retrieve "BUILD_TYPE"
|
## Retrieve "BUILD_TYPE"
|
||||||
def _GetBuildType(self):
|
@property
|
||||||
|
def BuildType(self):
|
||||||
if self._BuildType is None:
|
if self._BuildType is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -436,7 +444,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._BuildType
|
return self._BuildType
|
||||||
|
|
||||||
## Retrieve file guid
|
## Retrieve file guid
|
||||||
def _GetFileGuid(self):
|
@property
|
||||||
|
def Guid(self):
|
||||||
if self._Guid is None:
|
if self._Guid is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -445,7 +454,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Guid
|
return self._Guid
|
||||||
|
|
||||||
## Retrieve module version
|
## Retrieve module version
|
||||||
def _GetVersion(self):
|
@property
|
||||||
|
def Version(self):
|
||||||
if self._Version is None:
|
if self._Version is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -454,7 +464,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Version
|
return self._Version
|
||||||
|
|
||||||
## Retrieve PCD_IS_DRIVER
|
## Retrieve PCD_IS_DRIVER
|
||||||
def _GetPcdIsDriver(self):
|
@property
|
||||||
|
def PcdIsDriver(self):
|
||||||
if self._PcdIsDriver is None:
|
if self._PcdIsDriver is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -463,7 +474,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._PcdIsDriver
|
return self._PcdIsDriver
|
||||||
|
|
||||||
## Retrieve SHADOW
|
## Retrieve SHADOW
|
||||||
def _GetShadow(self):
|
@property
|
||||||
|
def Shadow(self):
|
||||||
if self._Shadow is None:
|
if self._Shadow is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -474,7 +486,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Shadow
|
return self._Shadow
|
||||||
|
|
||||||
## Retrieve CUSTOM_MAKEFILE
|
## Retrieve CUSTOM_MAKEFILE
|
||||||
def _GetMakefile(self):
|
@property
|
||||||
|
def CustomMakefile(self):
|
||||||
if self._CustomMakefile is None:
|
if self._CustomMakefile is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -483,7 +496,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._CustomMakefile
|
return self._CustomMakefile
|
||||||
|
|
||||||
## Retrieve EFI_SPECIFICATION_VERSION
|
## Retrieve EFI_SPECIFICATION_VERSION
|
||||||
def _GetSpec(self):
|
@property
|
||||||
|
def Specification(self):
|
||||||
if self._Specification is None:
|
if self._Specification is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -492,7 +506,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Specification
|
return self._Specification
|
||||||
|
|
||||||
## Retrieve LIBRARY_CLASS
|
## Retrieve LIBRARY_CLASS
|
||||||
def _GetLibraryClass(self):
|
@property
|
||||||
|
def LibraryClass(self):
|
||||||
if self._LibraryClass is None:
|
if self._LibraryClass is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -501,7 +516,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._LibraryClass
|
return self._LibraryClass
|
||||||
|
|
||||||
## Retrieve ENTRY_POINT
|
## Retrieve ENTRY_POINT
|
||||||
def _GetEntryPoint(self):
|
@property
|
||||||
|
def ModuleEntryPointList(self):
|
||||||
if self._ModuleEntryPointList is None:
|
if self._ModuleEntryPointList is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -510,7 +526,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._ModuleEntryPointList
|
return self._ModuleEntryPointList
|
||||||
|
|
||||||
## Retrieve UNLOAD_IMAGE
|
## Retrieve UNLOAD_IMAGE
|
||||||
def _GetUnloadImage(self):
|
@property
|
||||||
|
def ModuleUnloadImageList(self):
|
||||||
if self._ModuleUnloadImageList is None:
|
if self._ModuleUnloadImageList is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -519,7 +536,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._ModuleUnloadImageList
|
return self._ModuleUnloadImageList
|
||||||
|
|
||||||
## Retrieve CONSTRUCTOR
|
## Retrieve CONSTRUCTOR
|
||||||
def _GetConstructor(self):
|
@property
|
||||||
|
def ConstructorList(self):
|
||||||
if self._ConstructorList is None:
|
if self._ConstructorList is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -528,7 +546,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._ConstructorList
|
return self._ConstructorList
|
||||||
|
|
||||||
## Retrieve DESTRUCTOR
|
## Retrieve DESTRUCTOR
|
||||||
def _GetDestructor(self):
|
@property
|
||||||
|
def DestructorList(self):
|
||||||
if self._DestructorList is None:
|
if self._DestructorList is None:
|
||||||
if self._Header_ is None:
|
if self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
@ -537,7 +556,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._DestructorList
|
return self._DestructorList
|
||||||
|
|
||||||
## Retrieve definies other than above ones
|
## Retrieve definies other than above ones
|
||||||
def _GetDefines(self):
|
@property
|
||||||
|
def Defines(self):
|
||||||
if len(self._Defs) == 0 and self._Header_ is None:
|
if len(self._Defs) == 0 and self._Header_ is None:
|
||||||
self._GetHeaderInfo()
|
self._GetHeaderInfo()
|
||||||
return self._Defs
|
return self._Defs
|
||||||
@ -571,7 +591,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Binaries
|
return self._Binaries
|
||||||
|
|
||||||
## Retrieve binary files with error check.
|
## Retrieve binary files with error check.
|
||||||
def _GetBinaryFiles(self):
|
@property
|
||||||
|
def Binaries(self):
|
||||||
Binaries = self._GetBinaries()
|
Binaries = self._GetBinaries()
|
||||||
if GlobalData.gIgnoreSource and Binaries == []:
|
if GlobalData.gIgnoreSource and Binaries == []:
|
||||||
ErrorInfo = "The INF file does not contain any Binaries to use in creating the image\n"
|
ErrorInfo = "The INF file does not contain any Binaries to use in creating the image\n"
|
||||||
@ -580,7 +601,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return Binaries
|
return Binaries
|
||||||
|
|
||||||
## Retrieve source files
|
## Retrieve source files
|
||||||
def _GetSourceFiles(self):
|
@property
|
||||||
|
def Sources(self):
|
||||||
# Ignore all source files in a binary build mode
|
# Ignore all source files in a binary build mode
|
||||||
if GlobalData.gIgnoreSource:
|
if GlobalData.gIgnoreSource:
|
||||||
self._Sources = []
|
self._Sources = []
|
||||||
@ -626,7 +648,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Sources
|
return self._Sources
|
||||||
|
|
||||||
## Retrieve library classes employed by this module
|
## Retrieve library classes employed by this module
|
||||||
def _GetLibraryClassUses(self):
|
@property
|
||||||
|
def LibraryClasses(self):
|
||||||
if self._LibraryClasses is None:
|
if self._LibraryClasses is None:
|
||||||
self._LibraryClasses = OrderedDict()
|
self._LibraryClasses = OrderedDict()
|
||||||
RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, self._Platform]
|
RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, self._Platform]
|
||||||
@ -639,7 +662,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._LibraryClasses
|
return self._LibraryClasses
|
||||||
|
|
||||||
## Retrieve library names (for Edk.x style of modules)
|
## Retrieve library names (for Edk.x style of modules)
|
||||||
def _GetLibraryNames(self):
|
@property
|
||||||
|
def Libraries(self):
|
||||||
if self._Libraries is None:
|
if self._Libraries is None:
|
||||||
self._Libraries = []
|
self._Libraries = []
|
||||||
RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch, self._Platform]
|
RecordList = self._RawData[MODEL_EFI_LIBRARY_INSTANCE, self._Arch, self._Platform]
|
||||||
@ -651,11 +675,14 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._Libraries.append(LibraryName)
|
self._Libraries.append(LibraryName)
|
||||||
return self._Libraries
|
return self._Libraries
|
||||||
|
|
||||||
def _GetProtocolComments(self):
|
@property
|
||||||
self._GetProtocols()
|
def ProtocolComments(self):
|
||||||
|
self.Protocols
|
||||||
return self._ProtocolComments
|
return self._ProtocolComments
|
||||||
|
|
||||||
## Retrieve protocols consumed/produced by this module
|
## Retrieve protocols consumed/produced by this module
|
||||||
def _GetProtocols(self):
|
@property
|
||||||
|
def Protocols(self):
|
||||||
if self._Protocols is None:
|
if self._Protocols is None:
|
||||||
self._Protocols = OrderedDict()
|
self._Protocols = OrderedDict()
|
||||||
self._ProtocolComments = OrderedDict()
|
self._ProtocolComments = OrderedDict()
|
||||||
@ -676,11 +703,14 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._ProtocolComments[CName] = Comments
|
self._ProtocolComments[CName] = Comments
|
||||||
return self._Protocols
|
return self._Protocols
|
||||||
|
|
||||||
def _GetPpiComments(self):
|
@property
|
||||||
self._GetPpis()
|
def PpiComments(self):
|
||||||
|
self.Ppis
|
||||||
return self._PpiComments
|
return self._PpiComments
|
||||||
|
|
||||||
## Retrieve PPIs consumed/produced by this module
|
## Retrieve PPIs consumed/produced by this module
|
||||||
def _GetPpis(self):
|
@property
|
||||||
|
def Ppis(self):
|
||||||
if self._Ppis is None:
|
if self._Ppis is None:
|
||||||
self._Ppis = OrderedDict()
|
self._Ppis = OrderedDict()
|
||||||
self._PpiComments = OrderedDict()
|
self._PpiComments = OrderedDict()
|
||||||
@ -701,11 +731,14 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._PpiComments[CName] = Comments
|
self._PpiComments[CName] = Comments
|
||||||
return self._Ppis
|
return self._Ppis
|
||||||
|
|
||||||
def _GetGuidComments(self):
|
@property
|
||||||
self._GetGuids()
|
def GuidComments(self):
|
||||||
|
self.Guids
|
||||||
return self._GuidComments
|
return self._GuidComments
|
||||||
|
|
||||||
## Retrieve GUIDs consumed/produced by this module
|
## Retrieve GUIDs consumed/produced by this module
|
||||||
def _GetGuids(self):
|
@property
|
||||||
|
def Guids(self):
|
||||||
if self._Guids is None:
|
if self._Guids is None:
|
||||||
self._Guids = OrderedDict()
|
self._Guids = OrderedDict()
|
||||||
self._GuidComments = OrderedDict()
|
self._GuidComments = OrderedDict()
|
||||||
@ -727,7 +760,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Guids
|
return self._Guids
|
||||||
|
|
||||||
## Retrieve include paths necessary for this module (for Edk.x style of modules)
|
## Retrieve include paths necessary for this module (for Edk.x style of modules)
|
||||||
def _GetIncludes(self):
|
@property
|
||||||
|
def Includes(self):
|
||||||
if self._Includes is None:
|
if self._Includes is None:
|
||||||
self._Includes = []
|
self._Includes = []
|
||||||
if self._SourceOverridePath:
|
if self._SourceOverridePath:
|
||||||
@ -781,7 +815,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Includes
|
return self._Includes
|
||||||
|
|
||||||
## Retrieve packages this module depends on
|
## Retrieve packages this module depends on
|
||||||
def _GetPackages(self):
|
@property
|
||||||
|
def Packages(self):
|
||||||
if self._Packages is None:
|
if self._Packages is None:
|
||||||
self._Packages = []
|
self._Packages = []
|
||||||
RecordList = self._RawData[MODEL_META_DATA_PACKAGE, self._Arch, self._Platform]
|
RecordList = self._RawData[MODEL_META_DATA_PACKAGE, self._Arch, self._Platform]
|
||||||
@ -800,11 +835,14 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Packages
|
return self._Packages
|
||||||
|
|
||||||
## Retrieve PCD comments
|
## Retrieve PCD comments
|
||||||
def _GetPcdComments(self):
|
@property
|
||||||
self._GetPcds()
|
def PcdComments(self):
|
||||||
|
self.Pcds
|
||||||
return self._PcdComments
|
return self._PcdComments
|
||||||
|
|
||||||
## Retrieve PCDs used in this module
|
## Retrieve PCDs used in this module
|
||||||
def _GetPcds(self):
|
@property
|
||||||
|
def Pcds(self):
|
||||||
if self._Pcds is None:
|
if self._Pcds is None:
|
||||||
self._Pcds = OrderedDict()
|
self._Pcds = OrderedDict()
|
||||||
self._PcdComments = OrderedDict()
|
self._PcdComments = OrderedDict()
|
||||||
@ -816,7 +854,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Pcds
|
return self._Pcds
|
||||||
|
|
||||||
## Retrieve build options specific to this module
|
## Retrieve build options specific to this module
|
||||||
def _GetBuildOptions(self):
|
@property
|
||||||
|
def BuildOptions(self):
|
||||||
if self._BuildOptions is None:
|
if self._BuildOptions is None:
|
||||||
self._BuildOptions = OrderedDict()
|
self._BuildOptions = OrderedDict()
|
||||||
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, self._Platform]
|
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, self._Platform]
|
||||||
@ -833,7 +872,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._BuildOptions
|
return self._BuildOptions
|
||||||
|
|
||||||
## Retrieve dependency expression
|
## Retrieve dependency expression
|
||||||
def _GetDepex(self):
|
@property
|
||||||
|
def Depex(self):
|
||||||
if self._Depex is None:
|
if self._Depex is None:
|
||||||
self._Depex = tdict(False, 2)
|
self._Depex = tdict(False, 2)
|
||||||
RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]
|
RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]
|
||||||
@ -904,7 +944,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return self._Depex
|
return self._Depex
|
||||||
|
|
||||||
## Retrieve depedency expression
|
## Retrieve depedency expression
|
||||||
def _GetDepexExpression(self):
|
@property
|
||||||
|
def DepexExpression(self):
|
||||||
if self._DepexExpression is None:
|
if self._DepexExpression is None:
|
||||||
self._DepexExpression = tdict(False, 2)
|
self._DepexExpression = tdict(False, 2)
|
||||||
RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]
|
RecordList = self._RawData[MODEL_EFI_DEPEX, self._Arch]
|
||||||
@ -924,6 +965,7 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
|
|
||||||
def GetGuidsUsedByPcd(self):
|
def GetGuidsUsedByPcd(self):
|
||||||
return self._GuidsUsedByPcd
|
return self._GuidsUsedByPcd
|
||||||
|
|
||||||
## Retrieve PCD for given type
|
## Retrieve PCD for given type
|
||||||
def _GetPcd(self, Type):
|
def _GetPcd(self, Type):
|
||||||
Pcds = OrderedDict()
|
Pcds = OrderedDict()
|
||||||
@ -1114,54 +1156,8 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return Pcds
|
return Pcds
|
||||||
|
|
||||||
## check whether current module is binary module
|
## check whether current module is binary module
|
||||||
def _IsBinaryModule(self):
|
@property
|
||||||
if self.Binaries and not self.Sources:
|
def IsBinaryModule(self):
|
||||||
|
if (self.Binaries and not self.Sources) or GlobalData.gIgnoreSource:
|
||||||
return True
|
return True
|
||||||
elif GlobalData.gIgnoreSource:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
_Macros = property(_GetMacros)
|
|
||||||
Arch = property(_GetArch)
|
|
||||||
Platform = property(_GetPlatform)
|
|
||||||
|
|
||||||
HeaderComments = property(_GetHeaderComments)
|
|
||||||
TailComments = property(_GetTailComments)
|
|
||||||
AutoGenVersion = property(_GetInfVersion)
|
|
||||||
BaseName = property(_GetBaseName)
|
|
||||||
ModuleType = property(_GetModuleType)
|
|
||||||
ComponentType = property(_GetComponentType)
|
|
||||||
BuildType = property(_GetBuildType)
|
|
||||||
Guid = property(_GetFileGuid)
|
|
||||||
Version = property(_GetVersion)
|
|
||||||
PcdIsDriver = property(_GetPcdIsDriver)
|
|
||||||
Shadow = property(_GetShadow)
|
|
||||||
CustomMakefile = property(_GetMakefile)
|
|
||||||
Specification = property(_GetSpec)
|
|
||||||
LibraryClass = property(_GetLibraryClass)
|
|
||||||
ModuleEntryPointList = property(_GetEntryPoint)
|
|
||||||
ModuleUnloadImageList = property(_GetUnloadImage)
|
|
||||||
ConstructorList = property(_GetConstructor)
|
|
||||||
DestructorList = property(_GetDestructor)
|
|
||||||
Defines = property(_GetDefines)
|
|
||||||
DxsFile = property(_GetDxsFile)
|
|
||||||
|
|
||||||
Binaries = property(_GetBinaryFiles)
|
|
||||||
Sources = property(_GetSourceFiles)
|
|
||||||
LibraryClasses = property(_GetLibraryClassUses)
|
|
||||||
Libraries = property(_GetLibraryNames)
|
|
||||||
Protocols = property(_GetProtocols)
|
|
||||||
ProtocolComments = property(_GetProtocolComments)
|
|
||||||
Ppis = property(_GetPpis)
|
|
||||||
PpiComments = property(_GetPpiComments)
|
|
||||||
Guids = property(_GetGuids)
|
|
||||||
GuidComments = property(_GetGuidComments)
|
|
||||||
Includes = property(_GetIncludes)
|
|
||||||
Packages = property(_GetPackages)
|
|
||||||
Pcds = property(_GetPcds)
|
|
||||||
PcdComments = property(_GetPcdComments)
|
|
||||||
BuildOptions = property(_GetBuildOptions)
|
|
||||||
Depex = property(_GetDepex)
|
|
||||||
DepexExpression = property(_GetDepexExpression)
|
|
||||||
IsBinaryModule = property(_IsBinaryModule)
|
|
||||||
|
@ -213,11 +213,13 @@ class MetaFileParser(object):
|
|||||||
self._PostProcessed = True
|
self._PostProcessed = True
|
||||||
|
|
||||||
## Get the parse complete flag
|
## Get the parse complete flag
|
||||||
def _GetFinished(self):
|
@property
|
||||||
|
def Finished(self):
|
||||||
return self._Finished
|
return self._Finished
|
||||||
|
|
||||||
## Set the complete flag
|
## Set the complete flag
|
||||||
def _SetFinished(self, Value):
|
@Finished.setter
|
||||||
|
def Finished(self, Value):
|
||||||
self._Finished = Value
|
self._Finished = Value
|
||||||
|
|
||||||
## Remove records that do not match given Filter Arch
|
## Remove records that do not match given Filter Arch
|
||||||
@ -416,7 +418,9 @@ class MetaFileParser(object):
|
|||||||
)
|
)
|
||||||
def GetValidExpression(self, TokenSpaceGuid, PcdCName):
|
def GetValidExpression(self, TokenSpaceGuid, PcdCName):
|
||||||
return self._Table.GetValidExpression(TokenSpaceGuid, PcdCName)
|
return self._Table.GetValidExpression(TokenSpaceGuid, PcdCName)
|
||||||
def _GetMacros(self):
|
|
||||||
|
@property
|
||||||
|
def _Macros(self):
|
||||||
Macros = {}
|
Macros = {}
|
||||||
Macros.update(self._FileLocalMacros)
|
Macros.update(self._FileLocalMacros)
|
||||||
Macros.update(self._GetApplicableSectionMacro())
|
Macros.update(self._GetApplicableSectionMacro())
|
||||||
@ -478,9 +482,6 @@ class MetaFileParser(object):
|
|||||||
return Macros
|
return Macros
|
||||||
|
|
||||||
_SectionParser = {}
|
_SectionParser = {}
|
||||||
Finished = property(_GetFinished, _SetFinished)
|
|
||||||
_Macros = property(_GetMacros)
|
|
||||||
|
|
||||||
|
|
||||||
## INF file parser class
|
## INF file parser class
|
||||||
#
|
#
|
||||||
@ -1252,7 +1253,8 @@ class DscParser(MetaFileParser):
|
|||||||
)
|
)
|
||||||
|
|
||||||
## Override parent's method since we'll do all macro replacements in parser
|
## Override parent's method since we'll do all macro replacements in parser
|
||||||
def _GetMacros(self):
|
@property
|
||||||
|
def _Macros(self):
|
||||||
Macros = {}
|
Macros = {}
|
||||||
Macros.update(self._FileLocalMacros)
|
Macros.update(self._FileLocalMacros)
|
||||||
Macros.update(self._GetApplicableSectionMacro())
|
Macros.update(self._GetApplicableSectionMacro())
|
||||||
@ -1673,8 +1675,6 @@ class DscParser(MetaFileParser):
|
|||||||
MODEL_META_DATA_SUBSECTION_HEADER : _SubsectionHeaderParser,
|
MODEL_META_DATA_SUBSECTION_HEADER : _SubsectionHeaderParser,
|
||||||
}
|
}
|
||||||
|
|
||||||
_Macros = property(_GetMacros)
|
|
||||||
|
|
||||||
## DEC file parser class
|
## DEC file parser class
|
||||||
#
|
#
|
||||||
# @param FilePath The path of platform description file
|
# @param FilePath The path of platform description file
|
||||||
|
@ -302,25 +302,21 @@ determine whether database file is out of date!\n")
|
|||||||
return PackageList
|
return PackageList
|
||||||
|
|
||||||
## Summarize all platforms in the database
|
## Summarize all platforms in the database
|
||||||
def _GetPlatformList(self):
|
def PlatformList(self):
|
||||||
PlatformList = []
|
RetVal = []
|
||||||
for PlatformFile in self.TblFile.GetFileList(MODEL_FILE_DSC):
|
for PlatformFile in self.TblFile.GetFileList(MODEL_FILE_DSC):
|
||||||
try:
|
try:
|
||||||
Platform = self.BuildObject[PathClass(PlatformFile), TAB_COMMON]
|
RetVal.append(self.BuildObject[PathClass(PlatformFile), TAB_COMMON])
|
||||||
except:
|
except:
|
||||||
Platform = None
|
pass
|
||||||
if Platform is not None:
|
return RetVal
|
||||||
PlatformList.append(Platform)
|
|
||||||
return PlatformList
|
|
||||||
|
|
||||||
def _MapPlatform(self, Dscfile):
|
def MapPlatform(self, Dscfile):
|
||||||
Platform = self.BuildObject[PathClass(Dscfile), TAB_COMMON]
|
Platform = self.BuildObject[PathClass(Dscfile), TAB_COMMON]
|
||||||
if Platform is None:
|
if Platform is None:
|
||||||
EdkLogger.error('build', PARSER_ERROR, "Failed to parser DSC file: %s" % Dscfile)
|
EdkLogger.error('build', PARSER_ERROR, "Failed to parser DSC file: %s" % Dscfile)
|
||||||
return Platform
|
return Platform
|
||||||
|
|
||||||
PlatformList = property(_GetPlatformList)
|
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
# This acts like the main() function for the script, unless it is 'import'ed into another
|
# This acts like the main() function for the script, unless it is 'import'ed into another
|
||||||
|
@ -1006,7 +1006,7 @@ class Build():
|
|||||||
else:
|
else:
|
||||||
self.Db.InitDatabase()
|
self.Db.InitDatabase()
|
||||||
self.Db_Flag = True
|
self.Db_Flag = True
|
||||||
Platform = self.Db._MapPlatform(str(self.PlatformFile))
|
Platform = self.Db.MapPlatform(str(self.PlatformFile))
|
||||||
self.Prebuild = str(Platform.Prebuild)
|
self.Prebuild = str(Platform.Prebuild)
|
||||||
if self.Prebuild:
|
if self.Prebuild:
|
||||||
PrebuildList = []
|
PrebuildList = []
|
||||||
@ -1045,7 +1045,7 @@ class Build():
|
|||||||
if 'POSTBUILD' in GlobalData.gCommandLineDefines:
|
if 'POSTBUILD' in GlobalData.gCommandLineDefines:
|
||||||
self.Postbuild = GlobalData.gCommandLineDefines.get('POSTBUILD')
|
self.Postbuild = GlobalData.gCommandLineDefines.get('POSTBUILD')
|
||||||
else:
|
else:
|
||||||
Platform = self.Db._MapPlatform(str(self.PlatformFile))
|
Platform = self.Db.MapPlatform(str(self.PlatformFile))
|
||||||
self.Postbuild = str(Platform.Postbuild)
|
self.Postbuild = str(Platform.Postbuild)
|
||||||
if self.Postbuild:
|
if self.Postbuild:
|
||||||
PostbuildList = []
|
PostbuildList = []
|
||||||
|
Reference in New Issue
Block a user