From db4d47fd3ae9cb4a80399b7ea4cfd55f1b22d180 Mon Sep 17 00:00:00 2001 From: Christian Rodriguez Date: Fri, 5 Apr 2019 00:04:23 +0800 Subject: BaseTools: Fix corner-cases of --hash feature BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1680 Re-use libraries, since they have already been hashed. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Christian Rodriguez Cc: Bob Feng Cc: Liming Gao Cc: Yonghong Zhu Reviewed-by: Bob Feng --- BaseTools/Source/Python/build/build.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'BaseTools/Source/Python/build/build.py') diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py index 9e6e5c15b2..af8bba47b1 100644 --- a/BaseTools/Source/Python/build/build.py +++ b/BaseTools/Source/Python/build/build.py @@ -1769,7 +1769,8 @@ class Build(): for Module in Pa.Platform.Modules: if self.ModuleFile.Dir == Module.Dir and self.ModuleFile.Name == Module.Name: Ma = ModuleAutoGen(Wa, Module, BuildTarget, ToolChain, Arch, self.PlatformFile) - if Ma is None: continue + if Ma is None: + continue MaList.append(Ma) if Ma.CanSkipbyHash(): self.HashSkipModules.append(Ma) @@ -2143,10 +2144,21 @@ class Build(): RemoveDirectory(os.path.dirname(GlobalData.gDatabasePath), True) def CreateAsBuiltInf(self): + all_lib_set = set() + all_mod_set = set() for Module in self.BuildModules: Module.CreateAsBuiltInf() + all_mod_set.add(Module) for Module in self.HashSkipModules: Module.CreateAsBuiltInf(True) + all_mod_set.add(Module) + for Module in all_mod_set: + for lib in Module.LibraryAutoGenList: + all_lib_set.add(lib) + for lib in all_lib_set: + lib.CreateAsBuiltInf(True) + all_lib_set.clear() + all_mod_set.clear() self.BuildModules = [] self.HashSkipModules = [] ## Do some clean-up works when error occurred -- cgit v1.2.3