X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FJava%2FSource%2FGenBuild%2Forg%2Ftianocore%2Fbuild%2FFrameworkBuildTask.java;h=e240150c29c471bc42f1ce79686e42842d80f8d2;hp=4ba6ec4c6ac8d8aa1330ce2111d7c816bc2c580c;hb=2251a3601382e62e2b947512e51560d1f73dfd05;hpb=91a1f0d7ac1e62fb578d645c546c9c12e81f5fe2 diff --git a/Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java b/Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java index 4ba6ec4c6a..e240150c29 100644 --- a/Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java +++ b/Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java @@ -77,9 +77,9 @@ public class FrameworkBuildTask extends Task{ private Set msaFiles = new LinkedHashSet(); - // - // This is only for none-multi-thread build to reduce overriding message - // + /// + /// This is only for none-multi-thread build to reduce overriding message + /// public static Hashtable originalProperties = new Hashtable(); String toolsDefFilename = ToolDefinitions.DEFAULT_TOOLS_DEF_FILE_PATH; @@ -197,7 +197,7 @@ public class FrameworkBuildTask extends Task{ // File workspacePath = new File(getProject().getProperty("WORKSPACE")); getProject().setProperty("WORKSPACE_DIR", workspacePath.getPath().replaceAll("(\\\\)", "/")); - GlobalData.initInfo(dbFilename, workspacePath.getPath(), toolsDefFilename); + GlobalData.initInfo(getProject(), dbFilename, workspacePath.getPath(), toolsDefFilename); // // If find MSA file and ACTIVE_PLATFORM is set, build the module; @@ -207,11 +207,10 @@ public class FrameworkBuildTask extends Task{ // If find more than one FPD files, report error. // File buildFile = null; - if (msaFiles.size() > 1) { - throw new BuildException("Found " + msaFiles.size() + " MSA files in current dir. "); - } else if (msaFiles.size() == 1 && activePlatform == null) { - throw new BuildException("If trying to build a single module, please set ACTIVE_PLATFORM in file [" + targetFilename + "]. "); - } else if (msaFiles.size() == 1 && activePlatform != null) { + if (msaFiles.size() > 0) { + if (activePlatform == null) { + throw new BuildException("If trying to build a single module, please set ACTIVE_PLATFORM in file [" + targetFilename + "]. "); + } // // Build the single module // @@ -278,17 +277,21 @@ public class FrameworkBuildTask extends Task{ } File tmpFile = new File(GlobalData.getWorkspacePath() + File.separatorChar + activePlatform); EdkLog.log(this, "Using the FPD file [" + tmpFile.getPath() + "] for the active platform. "); - EdkLog.log(this, "Processing the MSA file [" + buildFile.getPath() + "] ..>> "); - GenBuildTask genBuildTask = new GenBuildTask(); - genBuildTask.setSingleModuleBuild(true); - genBuildTask.setType(type); - getProject().setProperty("PLATFORM_FILE", activePlatform); - if( !multithread) { - originalProperties.put("PLATFORM_FILE", activePlatform); + + File[] moduleFiles = msaFiles.toArray(new File[msaFiles.size()]); + for (int i = 0; i < moduleFiles.length; ++i) { + EdkLog.log(this, "Processing the MSA file [" + moduleFiles[i].getPath() + "] ..>> "); + GenBuildTask genBuildTask = new GenBuildTask(); + genBuildTask.setSingleModuleBuild(true); + genBuildTask.setType(type); + getProject().setProperty("PLATFORM_FILE", activePlatform); + if( !multithread) { + originalProperties.put("PLATFORM_FILE", activePlatform); + } + genBuildTask.setProject(getProject()); + genBuildTask.setMsaFile(moduleFiles[i]); + genBuildTask.perform(); } - genBuildTask.setProject(getProject()); - genBuildTask.setMsaFile(buildFile); - genBuildTask.perform(); } } @@ -330,7 +333,7 @@ public class FrameworkBuildTask extends Task{ private void readTargetFile() throws EdkException{ String targetFile = getProject().getProperty("WORKSPACE_DIR") + File.separatorChar + targetFilename; - String[][] targetFileInfo = ConfigReader.parse(targetFile); + String[][] targetFileInfo = ConfigReader.parse(getProject(), targetFile); // // Get ToolChain Info from target.txt