]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java
Backup original properties to avoid property overriding message. This change is for...
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / FrameworkBuildTask.java
index 07da77c2bc65a42c3014384be67a86bc635fc9a2..04cf84c04fea1a42b7679ef070c9a84729725646 100644 (file)
@@ -16,6 +16,7 @@ package org.tianocore.build;
 import java.io.BufferedReader;\r
 import java.io.File;\r
 import java.io.InputStreamReader;\r
+import java.util.Hashtable;\r
 import java.util.Iterator;\r
 import java.util.LinkedHashSet;\r
 import java.util.Map;\r
@@ -26,7 +27,6 @@ import org.apache.tools.ant.Task;
 import org.tianocore.build.fpd.FpdParserForThread;\r
 import org.tianocore.build.fpd.FpdParserTask;\r
 import org.tianocore.build.global.GlobalData;\r
-import org.tianocore.build.global.PropertyManager;\r
 import org.tianocore.build.toolchain.ConfigReader;\r
 import org.tianocore.build.toolchain.ToolChainInfo;\r
 import org.tianocore.common.definitions.ToolDefinitions;\r
@@ -74,6 +74,11 @@ 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
+    public static Hashtable<String, String> originalProperties = new Hashtable<String, String>();\r
+    \r
     String toolsDefFilename = ToolDefinitions.DEFAULT_TOOLS_DEF_FILE_PATH;\r
     \r
     String targetFilename = ToolDefinitions.TARGET_FILE_PATH;\r
@@ -81,17 +86,17 @@ public class FrameworkBuildTask extends Task{
     String dbFilename = ToolDefinitions.FRAMEWORK_DATABASE_FILE_PATH;\r
     \r
     String activePlatform = null;\r
-    \r
+\r
     ///\r
     /// The flag to present current is multi-thread enabled\r
     ///\r
     public static boolean multithread = false;\r
-    \r
+\r
     ///\r
     /// The concurrent thread number\r
     ///\r
     public static int MAX_CONCURRENT_THREAD_NUMBER = 1;\r
-    \r
+\r
     ///\r
     /// there are three type: all (build), clean and cleanall\r
     ///\r
@@ -147,7 +152,7 @@ public class FrameworkBuildTask extends Task{
         // Global Data initialization\r
         //\r
         File workspacePath = new File(getProject().getProperty("WORKSPACE"));\r
-        PropertyManager.setProperty(getProject(), "WORKSPACE_DIR", workspacePath.getPath().replaceAll("(\\\\)", "/"));\r
+        getProject().setProperty("WORKSPACE_DIR", workspacePath.getPath().replaceAll("(\\\\)", "/"));\r
         GlobalData.initInfo(dbFilename, workspacePath.getPath(), toolsDefFilename);\r
         \r
         //\r
@@ -228,7 +233,10 @@ public class FrameworkBuildTask extends Task{
             GenBuildTask genBuildTask = new GenBuildTask();\r
             genBuildTask.setSingleModuleBuild(true);\r
             genBuildTask.setType(type);\r
-            PropertyManager.setProperty(getProject(), "PLATFORM_FILE", activePlatform);\r
+            getProject().setProperty("PLATFORM_FILE", activePlatform);\r
+            if( !multithread) {\r
+                originalProperties.put("PLATFORM_FILE", activePlatform);\r
+            }\r
             genBuildTask.setProject(getProject());\r
             genBuildTask.setMsaFile(buildFile);\r
             genBuildTask.execute();\r
@@ -242,8 +250,7 @@ public class FrameworkBuildTask extends Task{
     **/\r
     private void backupSystemProperties() {\r
         Map<String, String> sysProperties = System.getenv();\r
-        Set<String> keys = sysProperties.keySet();\r
-        Iterator<String> iter = keys.iterator();\r
+        Iterator<String> iter = sysProperties.keySet().iterator();\r
         while (iter.hasNext()) {\r
             String name = iter.next();\r
             \r
@@ -251,9 +258,17 @@ public class FrameworkBuildTask extends Task{
             // If system environment variable is not in ANT properties, add it\r
             //\r
             if (getProject().getProperty(name) == null) {\r
-                PropertyManager.setProperty(getProject(), name, sysProperties.get(name));\r
+                getProject().setProperty(name, sysProperties.get(name));\r
             }\r
         }\r
+        \r
+        Hashtable allProperties = getProject().getProperties();\r
+        Iterator piter = allProperties.keySet().iterator();\r
+        while (piter.hasNext()) {\r
+            String name = (String)piter.next();\r
+            originalProperties.put(new String(name), new String((String)allProperties.get(name)));\r
+        }\r
+        \r
     }\r
 \r
     private File intercommuniteWithUser(){\r