]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java
- Fixed EDKT240. Now the Blank.pad file for alignment purpose will no longer be needed.
[mirror_edk2.git] / Tools / Java / Source / GenBuild / org / tianocore / build / FrameworkBuildTask.java
index 4ba6ec4c6ac8d8aa1330ce2111d7c816bc2c580c..ae1ac7ec936fc3caf45151ff4af2fc63581b9068 100644 (file)
@@ -77,9 +77,9 @@ public class FrameworkBuildTask extends Task{
     \r
     private Set<File> msaFiles = new LinkedHashSet<File>();\r
     \r
-    //\r
-    // This is only for none-multi-thread build to reduce overriding message\r
-    //\r
+    ///\r
+    /// This is only for none-multi-thread build to reduce overriding message\r
+    ///\r
     public static Hashtable<String, String> originalProperties = new Hashtable<String, String>();\r
     \r
     String toolsDefFilename = ToolDefinitions.DEFAULT_TOOLS_DEF_FILE_PATH;\r
@@ -197,7 +197,7 @@ public class FrameworkBuildTask extends Task{
         //\r
         File workspacePath = new File(getProject().getProperty("WORKSPACE"));\r
         getProject().setProperty("WORKSPACE_DIR", workspacePath.getPath().replaceAll("(\\\\)", "/"));\r
-        GlobalData.initInfo(dbFilename, workspacePath.getPath(), toolsDefFilename);\r
+        GlobalData.initInfo(getProject(), dbFilename, workspacePath.getPath(), toolsDefFilename);\r
         \r
         //\r
         // If find MSA file and ACTIVE_PLATFORM is set, build the module; \r
@@ -207,11 +207,10 @@ public class FrameworkBuildTask extends Task{
         // If find more than one FPD files, report error.  \r
         //\r
         File buildFile = null;\r
-        if (msaFiles.size() > 1) {\r
-            throw new BuildException("Found " + msaFiles.size() + " MSA files in current dir. ");\r
-        } else if (msaFiles.size() == 1 && activePlatform == null) {\r
-            throw new BuildException("If trying to build a single module, please set ACTIVE_PLATFORM in file [" + targetFilename + "]. ");\r
-        } else if (msaFiles.size() == 1 && activePlatform != null) {\r
+        if (msaFiles.size() > 0) {\r
+            if (activePlatform == null) {\r
+                throw new BuildException("If trying to build a single module, please set ACTIVE_PLATFORM in file [" + targetFilename + "]. ");\r
+            }\r
             //\r
             // Build the single module\r
             //\r
@@ -278,17 +277,21 @@ public class FrameworkBuildTask extends Task{
             }\r
             File tmpFile = new File(GlobalData.getWorkspacePath() + File.separatorChar + activePlatform);\r
             EdkLog.log(this, "Using the FPD file [" + tmpFile.getPath() + "] for the active platform. ");\r
-            EdkLog.log(this, "Processing the MSA file [" + buildFile.getPath() + "] ..>> ");\r
-            GenBuildTask genBuildTask = new GenBuildTask();\r
-            genBuildTask.setSingleModuleBuild(true);\r
-            genBuildTask.setType(type);\r
-            getProject().setProperty("PLATFORM_FILE", activePlatform);\r
-            if( !multithread) {\r
-                originalProperties.put("PLATFORM_FILE", activePlatform);\r
+\r
+            File[] moduleFiles = msaFiles.toArray(new File[msaFiles.size()]);\r
+            for (int i = 0; i < moduleFiles.length; ++i) {\r
+                EdkLog.log(this, "Processing the MSA file [" + moduleFiles[i].getPath() + "] ..>> ");\r
+                GenBuildTask genBuildTask = new GenBuildTask();\r
+                genBuildTask.setSingleModuleBuild(true);\r
+                genBuildTask.setType(type);\r
+                getProject().setProperty("PLATFORM_FILE", activePlatform);\r
+                if( !multithread) {\r
+                    originalProperties.put("PLATFORM_FILE", activePlatform);\r
+                }\r
+                genBuildTask.setProject(getProject());\r
+                genBuildTask.setMsaFile(moduleFiles[i]);\r
+                genBuildTask.perform();\r
             }\r
-            genBuildTask.setProject(getProject());\r
-            genBuildTask.setMsaFile(buildFile);\r
-            genBuildTask.perform();\r
         }\r
     }\r
     \r
@@ -320,17 +323,13 @@ public class FrameworkBuildTask extends Task{
     }\r
 \r
     public void setType(String type) {\r
-        if (type.equalsIgnoreCase("clean") || type.equalsIgnoreCase("cleanall")) {\r
-            this.type = type.toLowerCase();\r
-        } else {\r
-            this.type = "all";\r
-        }\r
+        this.type = type.toLowerCase();\r
     }\r
     \r
     private void readTargetFile() throws EdkException{\r
         String targetFile = getProject().getProperty("WORKSPACE_DIR") + File.separatorChar + targetFilename;\r
         \r
-        String[][] targetFileInfo = ConfigReader.parse(targetFile);\r
+        String[][] targetFileInfo = ConfigReader.parse(getProject(), targetFile);\r
         \r
         //\r
         // Get ToolChain Info from target.txt\r