\r
## Create AsBuilt INF file the module\r
#\r
- def CreateAsBuiltInf(self):\r
+ def CreateAsBuiltInf(self, IsOnlyCopy = False):\r
+ self.OutputFile = []\r
+ if IsOnlyCopy:\r
+ if GlobalData.gBinCacheDest:\r
+ self.CopyModuleToCache()\r
+ return\r
+\r
if self.IsAsBuiltInfCreated:\r
return\r
\r
AsBuiltInfDict['module_pi_specification_version'] += [self.Specification['PI_SPECIFICATION_VERSION']]\r
\r
OutputDir = self.OutputDir.replace('\\', '/').strip('/')\r
- self.OutputFile = []\r
for Item in self.CodaTargetList:\r
File = Item.Target.Path.replace('\\', '/').strip('/').replace(OutputDir, '').strip('/')\r
if File not in self.OutputFile:\r
shutil.copy2(HashFile, FileDir)\r
if os.path.exists(ModuleFile):\r
shutil.copy2(ModuleFile, FileDir)\r
+ if not self.OutputFile:\r
+ Ma = self.Workspace.BuildDatabase[PathClass(ModuleFile), self.Arch, self.BuildTarget, self.ToolChain]\r
+ self.OutputFile = Ma.Binaries\r
if self.OutputFile:\r
for File in self.OutputFile:\r
+ File = str(File)\r
if not os.path.isabs(File):\r
File = os.path.join(self.OutputDir, File)\r
if os.path.exists(File):\r
self.LoadFixAddress = 0\r
self.UniFlag = BuildOptions.Flag\r
self.BuildModules = []\r
+ self.HashSkipModules = []\r
self.Db_Flag = False\r
self.LaunchPrebuildFlag = False\r
self.PlatformBuildPath = os.path.join(GlobalData.gConfDirectory,'.cache', '.PlatformBuild')\r
if Ma == None:\r
continue\r
if Ma.CanSkipbyHash():\r
+ self.HashSkipModules.append(Ma)\r
continue\r
\r
# Not to auto-gen for targets 'clean', 'cleanlib', 'cleanall', 'run', 'fds'\r
def CreateAsBuiltInf(self):\r
for Module in self.BuildModules:\r
Module.CreateAsBuiltInf()\r
+ for Module in self.HashSkipModules:\r
+ Module.CreateAsBuiltInf(True)\r
self.BuildModules = []\r
+ self.HashSkipModules = []\r
## Do some clean-up works when error occurred\r
def Relinquish(self):\r
OldLogLevel = EdkLogger.GetLevel()\r