BaseTools: store more complete output files in binary cache

Binary cache use the OutputFile method to return the module
built output files needed to store in cache, but current
OutputFile implementation doesn't return complete output files.
Enhance the OutputFile method to return more complete output files.

Signed-off-by: Steven Shi <steven.shi@intel.com>

Cc: Liming Gao <liming.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
Steven Shi 2019-10-21 14:24:57 +08:00 committed by mergify[bot]
parent 0c3e8e9947
commit 91f6c533f8
1 changed files with 4 additions and 16 deletions

View File

@ -1308,28 +1308,16 @@ class ModuleAutoGen(AutoGen):
def OutputFile(self):
retVal = set()
OutputDir = self.OutputDir.replace('\\', '/').strip('/')
DebugDir = self.DebugDir.replace('\\', '/').strip('/')
for Item in self.CodaTargetList:
File = Item.Target.Path.replace('\\', '/').strip('/').replace(DebugDir, '').replace(OutputDir, '').strip('/')
NewFile = path.join(self.OutputDir, File)
retVal.add(NewFile)
Bin = self._GenOffsetBin()
if Bin:
NewFile = path.join(self.OutputDir, Bin)
retVal.add(NewFile)
for Root, Dirs, Files in os.walk(self.OutputDir):
for Root, Dirs, Files in os.walk(self.BuildDir):
for File in Files:
# lib file is already added through above CodaTargetList, skip it here
if not (File.lower().endswith('.obj') or File.lower().endswith('.lib')):
NewFile = path.join(self.OutputDir, File)
if not (File.lower().endswith('.obj') or File.lower().endswith('.debug')):
NewFile = path.join(Root, File)
retVal.add(NewFile)
for Root, Dirs, Files in os.walk(self.FfsOutputDir):
for File in Files:
NewFile = path.join(self.FfsOutputDir, File)
NewFile = path.join(Root, File)
retVal.add(NewFile)
return retVal