BaseTools: Add support to merge Prebuild and Postbuild into build Process
authorYonghong Zhu <yonghong.zhu@intel.com>
Thu, 31 Mar 2016 06:05:59 +0000 (14:05 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Thu, 7 Apr 2016 05:13:22 +0000 (13:13 +0800)
commitf0dc69e61bf2316dcf7cc75eb7e4ba374a5b2832
tree8dc28ab102aab8e77505e4bde86b622a584da321
parentd7cd335681d6b1b5791b4e8ef4e311f39469a8c0
BaseTools: Add support to merge Prebuild and Postbuild into build Process

This feature is enhance build tool to incorporate execution of prebuild
and postbuild.

1.Prebuild script
a.DEFINE PREBUILD in DSC [Defines] section
b.Build command -D PREBUILD to override the one in DSC [Defines] section
1)If PREBUILD is a file, then this file will be used as prebuild script.
2)If PREBUILD is empty, then prebuild script will be disabled.
3)If PREBUILD is not defined in [Defines] section and not passed in on
command line, then prebuild script is also disabled.

2.Prebuild option
a.All options of build tool
b.TARGET, ARCH and TOOL_CHAIN_TAG value, Those value will be from
target.txt file if they are not in build command line.
c.Additional options following prebuild definition. Quotes are needed
when these additional options are present.
d.Quotes would also be required if the path to the prebuild command
contains space or special characters.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Common/BuildToolError.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/DscClassObject.py
BaseTools/Source/Python/Common/GlobalData.py
BaseTools/Source/Python/CommonDataClass/PlatformClass.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/build.py