GlobalData.gDisableIncludePathCheck = False\r
GlobalData.gFdfParser = self.data_pipe.Get("FdfParser")\r
GlobalData.gDatabasePath = self.data_pipe.Get("DatabasePath")\r
+ GlobalData.gBinCacheSource = self.data_pipe.Get("BinCacheSource")\r
+ GlobalData.gBinCacheDest = self.data_pipe.Get("BinCacheDest")\r
+ GlobalData.gCacheIR = self.data_pipe.Get("CacheIR")\r
+ GlobalData.gEnableGenfdsMultiThread = self.data_pipe.Get("EnableGenfdsMultiThread")\r
+ GlobalData.file_lock = self.file_lock\r
+ CommandTarget = self.data_pipe.Get("CommandTarget")\r
pcd_from_build_option = []\r
for pcd_tuple in self.data_pipe.Get("BuildOptPcd"):\r
pcd_id = ".".join((pcd_tuple[0],pcd_tuple[1]))\r
FfsCmd = self.data_pipe.Get("FfsCommand")\r
if FfsCmd is None:\r
FfsCmd = {}\r
+ GlobalData.FfsCmd = FfsCmd\r
PlatformMetaFile = self.GetPlatformMetaFile(self.data_pipe.Get("P_Info").get("ActivePlatform"),\r
self.data_pipe.Get("P_Info").get("WorkspaceDir"))\r
libConstPcd = self.data_pipe.Get("LibConstPcd")\r
Refes = self.data_pipe.Get("REFS")\r
+ GlobalData.libConstPcd = libConstPcd\r
+ GlobalData.Refes = Refes\r
while True:\r
if self.module_queue.empty():\r
break\r
Ma.ConstPcd = libConstPcd[(Ma.MetaFile.File,Ma.MetaFile.Root,Ma.Arch,Ma.MetaFile.Path)]\r
if (Ma.MetaFile.File,Ma.MetaFile.Root,Ma.Arch,Ma.MetaFile.Path) in Refes:\r
Ma.ReferenceModules = Refes[(Ma.MetaFile.File,Ma.MetaFile.Root,Ma.Arch,Ma.MetaFile.Path)]\r
+ if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]:\r
+ Ma.GenModuleFilesHash(GlobalData.gCacheIR)\r
+ Ma.GenPreMakefileHash(GlobalData.gCacheIR)\r
+ if Ma.CanSkipbyPreMakefileCache(GlobalData.gCacheIR):\r
+ continue\r
+\r
Ma.CreateCodeFile(False)\r
Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.File, Ma.Arch),[]))\r
+\r
+ if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]:\r
+ Ma.GenMakeHeaderFilesHash(GlobalData.gCacheIR)\r
+ Ma.GenMakeHash(GlobalData.gCacheIR)\r
+ if Ma.CanSkipbyMakeCache(GlobalData.gCacheIR):\r
+ continue\r
except Empty:\r
pass\r
except:\r