diff options
author | Rodriguez, Christian <christian.rodriguez@intel.com> | 2019-05-20 22:17:54 +0800 |
---|---|---|
committer | Feng, Bob C <bob.c.feng@intel.com> | 2019-05-21 13:18:06 +0800 |
commit | a7ef158b07524f9afd0cefa3180aeac0fcb6e436 (patch) | |
tree | 3f1115a5c6e150f0a6283fc25adb22bf1c98c475 /BaseTools/Source/Python/Common/GlobalData.py | |
parent | 66b845ae06f1e48c693158ee0b8b4f610d5ada4a (diff) | |
download | edk2-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/GlobalData.py')
-rw-r--r-- | BaseTools/Source/Python/Common/GlobalData.py | 6 |
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()
|