diff --git a/Tools/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java b/Tools/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java index 14de2d824d..fe7a8ce70d 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java +++ b/Tools/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java @@ -29,6 +29,41 @@ import org.tianocore.build.toolchain.ConfigReader; import org.tianocore.build.toolchain.ToolChainInfo; import org.tianocore.common.definitions.ToolDefinitions; +/** +
+ FrameworkBuildTask
is an Ant task. The main function is finding
+ and processing a FPD or MSA file, then building a platform or stand-alone
+ module.
+
+
+ The task search current directory and find out all MSA and FPD files by file + extension. Base on ACTIVE_PLATFORM policy, decide to build a platform or a + stand-alone module. The ACTIVE_PLATFORM policy is: + +
+ 1. More than one MSA files, report error; + 2. Only one MSA file, but ACTIVE_PLATFORM is not specified, report error; + 3. Only one MSA file, and ACTIVE_PLATFORM is also specified, build this module; + 4. No MSA file, and ACTIVE_PLATFORM is specified, build the active platform; + 5. No MSA file, no ACTIVE_PLATFORM, and no FPD file, report error; + 6. No MSA file, no ACTIVE_PLATFORM, and only one FPD file, build the platform; + 7. No MSA file, no ACTIVE_PLATFORM, and more than one FPD files, list all platform + and let user choose one. ++ +
+ Framework build task also parse target file [${WORKSPACE_DIR}/Tools/Conf/target.txt]. + And load all system environment variables to Ant properties. + +
+ The usage for this task is : + +
+ <FrameworkBuild type="cleanall" /> ++ + @since GenBuild 1.0 +**/ public class FrameworkBuildTask extends Task{ private Set
The main function of this task is to parse module's surface area (MSA), then generate the corresponding BaseName_build.xml (the real ANT build script) and call this to build the module. The whole process including: +
1. generate AutoGen.c and AutoGen.h; 2. build all dependent library instances; 3. build all source files inlcude AutoGen.c; 4. generate sections; 5. generate FFS file if it is driver module while LIB file if it is Library module. - ++
The usage is (take module HelloWorld for example):
diff --git a/build.xml b/build.xml
index 4b7e95428b..cf10675f62 100644
--- a/build.xml
+++ b/build.xml
@@ -33,9 +33,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.