mirror of https://github.com/acidanthera/audk.git
BaseTools: AutoGen - refactor class factory
since instances are not added to cache, the factory does nothing. 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:
parent
c23ef28c20
commit
aaa5a23c95
|
@ -47,21 +47,10 @@ def ListFileMacro(FileType):
|
|||
return "%s_LIST" % FileListMacro(FileType)
|
||||
|
||||
class TargetDescBlock(object):
|
||||
_Cache_ = {} # {TargetFile : TargetDescBlock object}
|
||||
def __init__(self, Inputs, Outputs, Commands, Dependencies):
|
||||
self.InitWorker(Inputs, Outputs, Commands, Dependencies)
|
||||
|
||||
# Factory method
|
||||
def __new__(Class, Inputs, Outputs, Commands, Dependencies):
|
||||
if Outputs[0] in Class._Cache_:
|
||||
Tdb = Class._Cache_[Outputs[0]]
|
||||
for File in Inputs:
|
||||
Tdb.AddInput(File)
|
||||
else:
|
||||
Tdb = super(TargetDescBlock, Class).__new__(Class)
|
||||
Tdb._Init(Inputs, Outputs, Commands, Dependencies)
|
||||
#Class._Cache_[Outputs[0]] = Tdb
|
||||
return Tdb
|
||||
|
||||
def _Init(self, Inputs, Outputs, Commands, Dependencies):
|
||||
def InitWorker(self, Inputs, Outputs, Commands, Dependencies):
|
||||
self.Inputs = Inputs
|
||||
self.Outputs = Outputs
|
||||
self.Commands = Commands
|
||||
|
@ -90,10 +79,6 @@ class TargetDescBlock(object):
|
|||
def IsMultipleInput(self):
|
||||
return len(self.Inputs) > 1
|
||||
|
||||
@staticmethod
|
||||
def Renew():
|
||||
TargetDescBlock._Cache_ = {}
|
||||
|
||||
## Class for one build rule
|
||||
#
|
||||
# This represents a build rule which can give out corresponding command list for
|
||||
|
@ -278,7 +263,7 @@ class FileBuildRule:
|
|||
# Command line should be regenerated since some macros are different
|
||||
#
|
||||
CommandList = self._BuildCommand(BuildRulePlaceholderDict)
|
||||
TargetDesc._Init([SourceFile], DstFile, CommandList, self.ExtraSourceFileList)
|
||||
TargetDesc.InitWorker([SourceFile], DstFile, CommandList, self.ExtraSourceFileList)
|
||||
break
|
||||
else:
|
||||
TargetDesc.AddInput(SourceFile)
|
||||
|
|
Loading…
Reference in New Issue