Reviewed-by: Liming Gao <liming....@intel.com>

> -----Original Message-----
> From: Zhu, Yonghong
> Sent: Thursday, July 28, 2016 9:33 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming....@intel.com>
> Subject: [Patch V2] BaseTools: Add build info for binary modules that only 
> list
> in FDF file
> 
> If the binary module is list in the FDF file but not list in the DSC
> file, current build report would not include these binary module's info
> in the report "Module section". The patch fix this issue.
> 
> Cc: Liming Gao <liming....@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong....@intel.com>
> ---
>  BaseTools/Source/Python/AutoGen/AutoGen.py   |  4 ++++
>  BaseTools/Source/Python/build/BuildReport.py | 18 +++++++++++++++++-
>  2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py
> b/BaseTools/Source/Python/AutoGen/AutoGen.py
> index 9a95014..9c548be 100644
> --- a/BaseTools/Source/Python/AutoGen/AutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
> @@ -1940,10 +1940,14 @@ class PlatformAutoGen(AutoGen):
>      #   @param  Module      The module from which the library classes will be
> resolved
>      #
>      #   @retval library_list    List of library instances sorted
>      #
>      def ApplyLibraryInstance(self, Module):
> +        # Cover the case that the binary INF file is list in the FDF file 
> but not DSC
> file, return empty list directly
> +        if str(Module) not in self.Platform.Modules:
> +            return []
> +
>          ModuleType = Module.ModuleType
> 
>          # for overridding library instances with module specific setting
>          PlatformModule = self.Platform.Modules[str(Module)]
> 
> diff --git a/BaseTools/Source/Python/build/BuildReport.py
> b/BaseTools/Source/Python/build/BuildReport.py
> index ef99989..4c57754 100644
> --- a/BaseTools/Source/Python/build/BuildReport.py
> +++ b/BaseTools/Source/Python/build/BuildReport.py
> @@ -45,10 +45,13 @@ from Common.DataType import TAB_BRG_PCD
>  from Common.DataType import TAB_BRG_LIBRARY
>  from Common.DataType import TAB_BACK_SLASH
>  from Common.LongFilePathSupport import OpenLongFilePath as open
>  from Common.MultipleWorkspace import MultipleWorkspace as mws
>  import Common.GlobalData as GlobalData
> +from AutoGen.AutoGen import ModuleAutoGen
> +from Common.Misc import PathClass
> +from Common.String import NormPath
> 
>  ## Pattern to extract contents in EDK DXS files
>  gDxsDependencyPattern =
> re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)
> 
>  ## Pattern to find total FV total size, occupied size in flash report
> intermediate file
> @@ -1645,12 +1648,25 @@ class PlatformReport(object):
>              for Ma in MaList:
>                  self.ModuleReportList.append(ModuleReport(Ma, ReportType))
>          else:
>              self._IsModuleBuild = False
>              for Pa in Wa.AutoGenObjectList:
> +                ModuleAutoGenList = []
>                  for ModuleKey in Pa.Platform.Modules:
> -
> self.ModuleReportList.append(ModuleReport(Pa.Platform.Modules[Module
> Key].M, ReportType))
> +
> ModuleAutoGenList.append(Pa.Platform.Modules[ModuleKey].M)
> +                if GlobalData.gFdfParser != None:
> +                    if Pa.Arch in GlobalData.gFdfParser.Profile.InfDict:
> +                        INFList = 
> GlobalData.gFdfParser.Profile.InfDict[Pa.Arch]
> +                        for InfName in INFList:
> +                            InfClass = PathClass(NormPath(InfName), 
> Wa.WorkspaceDir,
> Pa.Arch)
> +                            Ma = ModuleAutoGen(Wa, InfClass, Pa.BuildTarget,
> Pa.ToolChain, Pa.Arch, Wa.MetaFile)
> +                            if Ma == None:
> +                                continue
> +                            if Ma not in ModuleAutoGenList:
> +                                ModuleAutoGenList.append(Ma)
> +                for MGen in ModuleAutoGenList:
> +                    self.ModuleReportList.append(ModuleReport(MGen,
> ReportType))
> 
> 
> 
>      ##
>      # Generate report for the whole platform.
> --
> 2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to