BaseTools: Fixed issue for IgnoreAutoGen
https://bugzilla.tianocore.org/show_bug.cgi?id=2080 This patch is to improve build -u option to re-use GlobalVar_<platformguid>_<arch>.bin file which is introduced by multiple-process-autogen feature. Cc: Liming Gao <liming.gao@intel.com> Cc: Steven Shi <steven.shi@intel.com> Signed-off-by: Bob Feng <bob.c.feng@intel.com> Acked-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
@ -238,7 +238,7 @@ class AutoGenWorkerInProcess(mp.Process):
|
||||
Ma.GenModuleFilesHash(GlobalData.gCacheIR)
|
||||
Ma.GenPreMakefileHash(GlobalData.gCacheIR)
|
||||
if Ma.CanSkipbyPreMakefileCache(GlobalData.gCacheIR):
|
||||
continue
|
||||
continue
|
||||
|
||||
Ma.CreateCodeFile(False)
|
||||
Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.File, Ma.Arch),[]))
|
||||
|
@ -2060,8 +2060,8 @@ class ModuleAutoGen(AutoGen):
|
||||
|
||||
if not (self.MetaFile.Path, self.Arch) in gDict or \
|
||||
not gDict[(self.MetaFile.Path, self.Arch)].ModuleFilesHashDigest:
|
||||
EdkLogger.quiet("[cache warning]: Cannot generate ModuleFilesHashDigest for module %s[%s]" %(self.MetaFile.Path, self.Arch))
|
||||
return
|
||||
EdkLogger.quiet("[cache warning]: Cannot generate ModuleFilesHashDigest for module %s[%s]" %(self.MetaFile.Path, self.Arch))
|
||||
return
|
||||
|
||||
# Initialze hash object
|
||||
m = hashlib.md5()
|
||||
|
@ -236,6 +236,10 @@ class AutoGenInfo(object):
|
||||
#
|
||||
class WorkSpaceInfo(AutoGenInfo):
|
||||
def __init__(self,Workspace, MetaFile, Target, ToolChain, Arch):
|
||||
if not hasattr(self, "_Init"):
|
||||
self.do_init(Workspace, MetaFile, Target, ToolChain, Arch)
|
||||
self._Init = True
|
||||
def do_init(self,Workspace, MetaFile, Target, ToolChain, Arch):
|
||||
self._SrcTimeStamp = 0
|
||||
self.Db = BuildDB
|
||||
self.BuildDatabase = self.Db.BuildObject
|
||||
@ -244,10 +248,35 @@ class WorkSpaceInfo(AutoGenInfo):
|
||||
self.WorkspaceDir = Workspace
|
||||
self.ActivePlatform = MetaFile
|
||||
self.ArchList = Arch
|
||||
self.AutoGenObjectList = []
|
||||
@property
|
||||
def BuildDir(self):
|
||||
return self.AutoGenObjectList[0].BuildDir
|
||||
|
||||
@property
|
||||
def Name(self):
|
||||
return self.AutoGenObjectList[0].Platform.PlatformName
|
||||
|
||||
@property
|
||||
def FlashDefinition(self):
|
||||
return self.AutoGenObjectList[0].Platform.FlashDefinition
|
||||
@property
|
||||
def GenFdsCommandDict(self):
|
||||
FdsCommandDict = self.AutoGenObjectList[0].DataPipe.Get("FdsCommandDict")
|
||||
if FdsCommandDict:
|
||||
return FdsCommandDict
|
||||
return {}
|
||||
|
||||
@cached_property
|
||||
def FvDir(self):
|
||||
return os.path.join(self.BuildDir, TAB_FV_DIRECTORY)
|
||||
|
||||
class PlatformInfo(AutoGenInfo):
|
||||
def __init__(self, Workspace, MetaFile, Target, ToolChain, Arch,DataPipe):
|
||||
if not hasattr(self, "_Init"):
|
||||
self.do_init(Workspace, MetaFile, Target, ToolChain, Arch,DataPipe)
|
||||
self._Init = True
|
||||
def do_init(self,Workspace, MetaFile, Target, ToolChain, Arch,DataPipe):
|
||||
self.Wa = Workspace
|
||||
self.WorkspaceDir = self.Wa.WorkspaceDir
|
||||
self.MetaFile = MetaFile
|
||||
|
@ -188,7 +188,9 @@ class PlatformAutoGen(AutoGen):
|
||||
Ma.CreateMakeFile(CreateModuleMakeFile, FfsCommand[key])
|
||||
else:
|
||||
Ma.CreateMakeFile(CreateModuleMakeFile)
|
||||
self.CreateLibModuelDirs()
|
||||
|
||||
def CreateLibModuelDirs(self):
|
||||
# no need to create makefile for the platform more than once
|
||||
if self.IsMakeFileCreated:
|
||||
return
|
||||
|
@ -128,7 +128,6 @@ class WorkspaceAutoGen(AutoGen):
|
||||
self.CreateBuildOptionsFile()
|
||||
self.CreatePcdTokenNumberFile()
|
||||
self.CreateModuleHashInfo()
|
||||
GlobalData.gAutoGenPhase = False
|
||||
|
||||
#
|
||||
# Merge Arch
|
||||
|
Reference in New Issue
Block a user