mirror of https://github.com/acidanthera/audk.git
BaseTool: Add cache for the result of SkipAutogen.
Add a cache for the value of skip ModuleAutoGen process flag. This cache can improve build performance. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
f7496d7173
commit
18ef4e713f
|
@ -4309,11 +4309,14 @@ class ModuleAutoGen(AutoGen):
|
||||||
def CanSkipbyHash(self):
|
def CanSkipbyHash(self):
|
||||||
if GlobalData.gUseHashCache:
|
if GlobalData.gUseHashCache:
|
||||||
return not self.GenModuleHash()
|
return not self.GenModuleHash()
|
||||||
|
return False
|
||||||
|
|
||||||
## Decide whether we can skip the ModuleAutoGen process
|
## Decide whether we can skip the ModuleAutoGen process
|
||||||
# If any source file is newer than the module than we cannot skip
|
# If any source file is newer than the module than we cannot skip
|
||||||
#
|
#
|
||||||
def CanSkip(self):
|
def CanSkip(self):
|
||||||
|
if self.MetaFile in GlobalData.gSikpAutoGenCache:
|
||||||
|
return True
|
||||||
if not os.path.exists(self.GetTimeStampPath()):
|
if not os.path.exists(self.GetTimeStampPath()):
|
||||||
return False
|
return False
|
||||||
#last creation time of the module
|
#last creation time of the module
|
||||||
|
@ -4332,6 +4335,7 @@ class ModuleAutoGen(AutoGen):
|
||||||
ModuleAutoGen.TimeDict[source] = os.stat(source)[8]
|
ModuleAutoGen.TimeDict[source] = os.stat(source)[8]
|
||||||
if ModuleAutoGen.TimeDict[source] > DstTimeStamp:
|
if ModuleAutoGen.TimeDict[source] > DstTimeStamp:
|
||||||
return False
|
return False
|
||||||
|
GlobalData.gSikpAutoGenCache.add(self.MetaFile)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def GetTimeStampPath(self):
|
def GetTimeStampPath(self):
|
||||||
|
|
|
@ -113,3 +113,4 @@ gPlatformHash = None
|
||||||
gPackageHash = {}
|
gPackageHash = {}
|
||||||
gModuleHash = {}
|
gModuleHash = {}
|
||||||
gEnableGenfdsMultiThread = False
|
gEnableGenfdsMultiThread = False
|
||||||
|
gSikpAutoGenCache = set()
|
||||||
|
|
Loading…
Reference in New Issue