# @retval library_list List of library instances sorted\r
#\r
def ApplyLibraryInstance(self, Module):\r
+ # Cover the case that the binary INF file is list in the FDF file but not DSC file, return empty list directly\r
+ if str(Module) not in self.Platform.Modules:\r
+ return []\r
+\r
ModuleType = Module.ModuleType\r
\r
# for overridding library instances with module specific setting\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
from Common.MultipleWorkspace import MultipleWorkspace as mws\r
import Common.GlobalData as GlobalData\r
+from AutoGen.AutoGen import ModuleAutoGen\r
+from Common.Misc import PathClass\r
+from Common.String import NormPath\r
\r
## Pattern to extract contents in EDK DXS files\r
gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)\r
else:\r
self._IsModuleBuild = False\r
for Pa in Wa.AutoGenObjectList:\r
+ ModuleAutoGenList = []\r
for ModuleKey in Pa.Platform.Modules:\r
- self.ModuleReportList.append(ModuleReport(Pa.Platform.Modules[ModuleKey].M, ReportType))\r
+ ModuleAutoGenList.append(Pa.Platform.Modules[ModuleKey].M)\r
+ if GlobalData.gFdfParser != None:\r
+ if Pa.Arch in GlobalData.gFdfParser.Profile.InfDict:\r
+ INFList = GlobalData.gFdfParser.Profile.InfDict[Pa.Arch]\r
+ for InfName in INFList:\r
+ InfClass = PathClass(NormPath(InfName), Wa.WorkspaceDir, Pa.Arch)\r
+ Ma = ModuleAutoGen(Wa, InfClass, Pa.BuildTarget, Pa.ToolChain, Pa.Arch, Wa.MetaFile)\r
+ if Ma == None:\r
+ continue\r
+ if Ma not in ModuleAutoGenList:\r
+ ModuleAutoGenList.append(Ma)\r
+ for MGen in ModuleAutoGenList:\r
+ self.ModuleReportList.append(ModuleReport(MGen, ReportType))\r
\r
\r
\r