summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/build
diff options
context:
space:
mode:
authorYonghong Zhu <yonghong.zhu@intel.com>2017-12-12 15:18:22 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2017-12-13 16:06:52 +0800
commit83397f95f99b0884b27764f8ed13615a500e8fd7 (patch)
tree7c838dd66c5e836b5cfd987385410263b11056ed /BaseTools/Source/Python/build
parent5381ff634203a087fdba81b17c34e3d9b637b406 (diff)
downloadedk2-83397f95f99b0884b27764f8ed13615a500e8fd7.tar.gz
edk2-83397f95f99b0884b27764f8ed13615a500e8fd7.tar.bz2
edk2-83397f95f99b0884b27764f8ed13615a500e8fd7.zip
BaseTools: back up the binary files when hash value is same
V2: change to use InfBuildData but not ModuleAutoGen We meet the case that first build with --hash option, then build it again with --hash and --binary-destination option, since the hash value is same, tool will not build the driver again, it cause the binary files are not backed up. Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/build')
-rw-r--r--BaseTools/Source/Python/build/build.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/BaseTools/Source/Python/build/build.py b/BaseTools/Source/Python/build/build.py
index f94285a964..457f6c9ef7 100644
--- a/BaseTools/Source/Python/build/build.py
+++ b/BaseTools/Source/Python/build/build.py
@@ -825,6 +825,7 @@ class Build():
self.LoadFixAddress = 0
self.UniFlag = BuildOptions.Flag
self.BuildModules = []
+ self.HashSkipModules = []
self.Db_Flag = False
self.LaunchPrebuildFlag = False
self.PlatformBuildPath = os.path.join(GlobalData.gConfDirectory,'.cache', '.PlatformBuild')
@@ -2016,6 +2017,7 @@ class Build():
if Ma == None:
continue
if Ma.CanSkipbyHash():
+ self.HashSkipModules.append(Ma)
continue
# Not to auto-gen for targets 'clean', 'cleanlib', 'cleanall', 'run', 'fds'
@@ -2214,7 +2216,10 @@ class Build():
def CreateAsBuiltInf(self):
for Module in self.BuildModules:
Module.CreateAsBuiltInf()
+ for Module in self.HashSkipModules:
+ Module.CreateAsBuiltInf(True)
self.BuildModules = []
+ self.HashSkipModules = []
## Do some clean-up works when error occurred
def Relinquish(self):
OldLogLevel = EdkLogger.GetLevel()