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
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
\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
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
// 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
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
**/\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
// 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