BaseTools: Library hashing fix and optimization for --hash feature
authorRodriguez, Christian <christian.rodriguez@intel.com>
Mon, 20 May 2019 14:17:54 +0000 (22:17 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Tue, 21 May 2019 05:18:06 +0000 (13:18 +0800)
commita7ef158b07524f9afd0cefa3180aeac0fcb6e436
tree3f1115a5c6e150f0a6283fc25adb22bf1c98c475
parent66b845ae06f1e48c693158ee0b8b4f610d5ada4a
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>
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/Common/GlobalData.py
BaseTools/Source/Python/build/build.py