From: Feng, Bob C Date: Mon, 2 Jul 2018 01:15:47 +0000 (+0800) Subject: BaseTool: Add cache for the result of SkipAutogen. X-Git-Tag: edk2-stable201903~1436 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=18ef4e713f2fb5d2f84d179b9861b4afee212f65 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 Cc: Liming Gao Reviewed-by: Liming Gao --- diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index b0801c787a..d100648606 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -4309,11 +4309,14 @@ class ModuleAutoGen(AutoGen): def CanSkipbyHash(self): if GlobalData.gUseHashCache: return not self.GenModuleHash() + return False ## Decide whether we can skip the ModuleAutoGen process # If any source file is newer than the module than we cannot skip # def CanSkip(self): + if self.MetaFile in GlobalData.gSikpAutoGenCache: + return True if not os.path.exists(self.GetTimeStampPath()): return False #last creation time of the module @@ -4332,6 +4335,7 @@ class ModuleAutoGen(AutoGen): ModuleAutoGen.TimeDict[source] = os.stat(source)[8] if ModuleAutoGen.TimeDict[source] > DstTimeStamp: return False + GlobalData.gSikpAutoGenCache.add(self.MetaFile) return True def GetTimeStampPath(self): diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py index afb3d8f020..fac7cde708 100644 --- a/BaseTools/Source/Python/Common/GlobalData.py +++ b/BaseTools/Source/Python/Common/GlobalData.py @@ -113,3 +113,4 @@ gPlatformHash = None gPackageHash = {} gModuleHash = {} gEnableGenfdsMultiThread = False +gSikpAutoGenCache = set()