mirror_edk2/BaseTools/Source/Python/Common
Yonghong Zhu 36d083ef00 BaseTools: add support for BIOS build with binary cache
Add three new options:
--hash enables hash-based caching during build process. when --hash is
enabled, build tool will base on the module hash value to do the
incremental build, without --hash, build tool will base on the
timestamp to do the incremental build. --hash option use md5 method to
get every hash value, DSC/FDF, tools_def.txt, build_rule.txt and build
command are calculated as global hash value, Package DEC and its
include header files are calculated as package hash value, Module
source files and its INF file are calculated as module hash value.
Library hash value will combine the global hash value and its dependent
package hash value. Driver hash value will combine the global hash
value, its dependent package hash value and its linked library hash
value.
When --hash and --binary-destination are specified, build tool will
copy generated binary files for each module into the directory specified
by binary-destination at the build phase. Binary-destination directory
caches all generated binary files.
When --hash and --binary-source are specified, build tool will try to
get the binary files from the binary source directory at the build
phase.If the cached binary has the same hash value, it will be directly
used. Otherwise, build tool will compile the source files and generate
the binary files.

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>
2017-09-27 17:14:54 +08:00
..
__init__.py Sync EDKII BaseTools to BaseTools project r1971 2010-05-18 05:04:32 +00:00
BuildToolError.py BaseTools: Add support to merge Prebuild and Postbuild into build Process 2016-04-07 13:13:22 +08:00
BuildVersion.py BaseTools: Clear build versions to sync with buildtools/BaseTools 2014-07-25 21:10:33 +00:00
Database.py There is a limitation on WINDOWS OS for the length of entire file path can’t be larger than 255. There is an OS API provided by Microsoft to add “\\?\” before the path header to support the long file path. Enable this feature on basetools. 2014-08-15 03:06:48 +00:00
DataType.py BaseTools/Common: add MM Module data types. 2017-07-07 10:50:01 +08:00
DecClassObject.py There is a limitation on WINDOWS OS for the length of entire file path can’t be larger than 255. There is an OS API provided by Microsoft to add “\\?\” before the path header to support the long file path. Enable this feature on basetools. 2014-08-15 03:06:48 +00:00
Dictionary.py BaseTools: Clean some coding style issues 2015-12-01 04:22:16 +00:00
DscClassObject.py BaseTools: Add support to merge Prebuild and Postbuild into build Process 2016-04-07 13:13:22 +08:00
EdkIIWorkspace.py BaseTools: Clean some coding style issues 2015-12-01 04:22:16 +00:00
EdkIIWorkspaceBuild.py There is a limitation on WINDOWS OS for the length of entire file path can’t be larger than 255. There is an OS API provided by Microsoft to add “\\?\” before the path header to support the long file path. Enable this feature on basetools. 2014-08-15 03:06:48 +00:00
EdkLogger.py BaseTools/EdkLogger: Support unit tests with a SILENT log level 2015-06-23 23:34:09 +00:00
Expression.py BaseTools: Add PCDs conditional operator function 2017-07-10 09:58:13 +08:00
FdfClassObject.py Sync EDKII BaseTools to BaseTools project r1971 2010-05-18 05:04:32 +00:00
FdfParserLite.py BaseTools: extend FFS alignment to 16M 2017-09-25 11:18:22 +08:00
GlobalData.py BaseTools: add support for BIOS build with binary cache 2017-09-27 17:14:54 +08:00
Identification.py Sync EDKII BaseTools to BaseTools project r1971 2010-05-18 05:04:32 +00:00
InfClassObject.py There is a limitation on WINDOWS OS for the length of entire file path can’t be larger than 255. There is an OS API provided by Microsoft to add “\\?\” before the path header to support the long file path. Enable this feature on basetools. 2014-08-15 03:06:48 +00:00
LongFilePathOs.py This patch is going to: 2014-08-21 07:51:21 +00:00
LongFilePathOsPath.py BaseTools: Update Build tool to support multiple workspaces 2015-10-08 09:27:14 +00:00
LongFilePathSupport.py BaseTools/Ecc: Add a checkpoint for invalid UNI file. 2015-06-25 07:50:55 +00:00
MigrationUtilities.py BaseTools: Clean some coding style issues 2015-12-01 04:22:16 +00:00
Misc.py BaseTools: Fix the bug for CArray PCD override in command line 2017-05-12 13:36:20 +08:00
MultipleWorkspace.py BaseTools: Fix the bug to correctly handle the [BuildOptions] 2016-04-15 08:41:21 +08:00
Parsing.py Sync BaseTool trunk (version r2670) into EDKII BaseTools. 2014-07-01 07:10:10 +00:00
PyUtility.pyd Sync BaseTool trunk (version r2599) into EDKII BaseTools. 2013-08-23 02:18:16 +00:00
RangeExpression.py BaseTools/Build: Fix the range expression evaluation error. 2015-07-06 00:55:15 +00:00
String.py BaseTools: Fix the bug that use '|' or '||' in DSC file's Pcd value 2017-06-24 23:03:38 +08:00
TargetTxtClassObject.py License header updated to match correct format. 2014-08-28 13:53:34 +00:00
ToolDefClassObject.py BaseTools: Fix a bug for ExpandMacros to support mixed case ENV var 2016-11-02 09:49:04 +08:00
VariableAttributes.py BaseTools/Build: Add SDL support 2015-04-10 06:59:47 +00:00
VpdInfoFile.py BaseTools: Update python tool to call external tools with shell true mode 2016-09-21 10:49:15 +08:00