import org.tianocore.build.toolchain.ToolChainInfo;\r
import org.tianocore.common.definitions.ToolDefinitions;\r
\r
+/**\r
+ <p>\r
+ <code>FrameworkBuildTask</code> is an Ant task. The main function is finding\r
+ and processing a FPD or MSA file, then building a platform or stand-alone \r
+ module. \r
+ \r
+ <p>\r
+ The task search current directory and find out all MSA and FPD files by file\r
+ extension. Base on ACTIVE_PLATFORM policy, decide to build a platform or a\r
+ stand-alone module. The ACTIVE_PLATFORM policy is: \r
+ \r
+ <pre>\r
+ 1. More than one MSA files, report error; \r
+ 2. Only one MSA file, but ACTIVE_PLATFORM is not specified, report error;\r
+ 3. Only one MSA file, and ACTIVE_PLATFORM is also specified, build this module;\r
+ 4. No MSA file, and ACTIVE_PLATFORM is specified, build the active platform;\r
+ 5. No MSA file, no ACTIVE_PLATFORM, and no FPD file, report error;\r
+ 6. No MSA file, no ACTIVE_PLATFORM, and only one FPD file, build the platform;\r
+ 7. No MSA file, no ACTIVE_PLATFORM, and more than one FPD files, list all platform\r
+ and let user choose one. \r
+ </pre>\r
+ \r
+ <p>\r
+ Framework build task also parse target file [${WORKSPACE_DIR}/Tools/Conf/target.txt].\r
+ And load all system environment variables to Ant properties. \r
+ \r
+ <p>\r
+ The usage for this task is : \r
+ \r
+ <pre>\r
+ <FrameworkBuild type="cleanall" />\r
+ </pre>\r
+ \r
+ @since GenBuild 1.0\r
+**/\r
public class FrameworkBuildTask extends Task{\r
\r
private Set<File> buildFiles = new LinkedHashSet<File>();\r
getProject().setProperty("WORKSPACE_DIR", workspacePath.getPath().replaceAll("(\\\\)", "/"));\r
GlobalData.initInfo(dbFilename, workspacePath.getPath(), toolsDefFilename);\r
\r
-\r
- \r
//\r
// If find MSA file and ACTIVE_PLATFORM is set, build the module; \r
// else fail build. \r