summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Common
diff options
context:
space:
mode:
authorRodriguez, Christian <christian.rodriguez@intel.com>2019-05-20 22:17:54 +0800
committerFeng, Bob C <bob.c.feng@intel.com>2019-05-21 13:18:06 +0800
commita7ef158b07524f9afd0cefa3180aeac0fcb6e436 (patch)
tree3f1115a5c6e150f0a6283fc25adb22bf1c98c475 /BaseTools/Source/Python/Common
parent66b845ae06f1e48c693158ee0b8b4f610d5ada4a (diff)
downloadedk2-a7ef158b07524f9afd0cefa3180aeac0fcb6e436.tar.gz
edk2-a7ef158b07524f9afd0cefa3180aeac0fcb6e436.tar.bz2
edk2-a7ef158b07524f9afd0cefa3180aeac0fcb6e436.zip
BaseTools: Library hashing fix and optimization for --hash feature
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1788 In V3: Must generate hashes before attempting to copy from cache for hash verifcation In V2: Build failure caused by passing incorrect boolean parameter to SaveFileOnChange(). Fixed for patch instances. Library hashing is now supported by the --hash feature. The --hash feature implementation assumed that the hashing could be done in place once per module, but that isn't true for libraries due to the fact that they are built as dependencies. So on a clean build, we now generate the .hash after the library dependencies are complete. Added early escape as optimization, if hash already exists in memory. Signed-off-by: Christian Rodriguez <christian.rodriguez@intel.com> Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Common')
-rw-r--r--BaseTools/Source/Python/Common/GlobalData.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/BaseTools/Source/Python/Common/GlobalData.py b/BaseTools/Source/Python/Common/GlobalData.py
index 79f23c892d..95e28a988f 100644
--- a/BaseTools/Source/Python/Common/GlobalData.py
+++ b/BaseTools/Source/Python/Common/GlobalData.py
@@ -112,3 +112,9 @@ gSikpAutoGenCache = set()
# Dictionary for tracking Module build status as success or failure
# False -> Fail : True -> Success
gModuleBuildTracking = dict()
+
+# Dictionary of booleans that dictate whether a module or
+# library can be skiped
+# Top Dict: Key: Arch Type Value: Dictionary
+# Second Dict: Key: Module\Library Name Value: True\False
+gBuildHashSkipTracking = dict()