//\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
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
import java.util.Map;\r
import java.util.Set;\r
\r
+import org.apache.tools.ant.Project;\r
import org.apache.xmlbeans.XmlException;\r
import org.apache.xmlbeans.XmlObject;\r
import org.apache.xmlbeans.XmlOptions;\r
@throws BuildException\r
Framework Dababase or SPD or MSA file is not valid\r
**/\r
- public synchronized static void initInfo(String workspaceDatabaseFile, String workspaceDir, String toolsDefFilename ) throws EdkException {\r
+ public synchronized static void initInfo(Project prj, String workspaceDatabaseFile, String workspaceDir, String toolsDefFilename ) throws EdkException {\r
//\r
// ensure this method will be revoked only once\r
//\r
//\r
File toolsDefFile = new File(workspaceDir + File.separatorChar + toolsDefFilename);\r
EdkLog.log("Init", EdkLog.EDK_ALWAYS, "Using tool definition file [" + toolsDefFile.getPath() + "].");\r
- toolsDef = new ToolChainConfig(toolsDefFile);\r
+ toolsDef = new ToolChainConfig(prj, toolsDefFile);\r
\r
//\r
// Parse Framework Database\r
**/\r
package org.tianocore.build.toolchain;\r
\r
+import org.apache.tools.ant.Project;\r
+\r
import org.tianocore.build.exception.GenBuildException;\r
\r
import java.io.BufferedReader;\r
\r
@return String[][] The definition array\r
**/\r
- public static synchronized String[][] parse(String filename) throws GenBuildException {\r
- return parse(new File(filename));\r
+ public static synchronized String[][] parse(Project prj, String filename) throws GenBuildException {\r
+ return parse(prj, new File(filename));\r
}\r
\r
/**\r
@throws GenBuildException\r
Config file's format is not valid\r
**/\r
- public static synchronized String[][] parse(File configFile) throws GenBuildException {\r
+ public static synchronized String[][] parse(Project prj, File configFile) throws GenBuildException {\r
List<String> keyList = new ArrayList<String>(256);\r
List<String> valueList = new ArrayList<String>(256);\r
int lines = 0;\r
// look as line "A = B"\r
//\r
keyList.add(str.substring(0, index).trim());\r
- valueList.add(str.substring(index + 1).trim());\r
+ if (prj != null) {\r
+ valueList.add(prj.replaceProperties(str.substring(index + 1).trim()));\r
+ } else {\r
+ valueList.add(str.substring(index + 1).trim());\r
+ }\r
}\r
} catch (Exception ex) {\r
GenBuildException e = new GenBuildException("ERROR Processing file [" \r
**/\r
package org.tianocore.build.toolchain;\r
\r
-import org.tianocore.build.exception.GenBuildException;\r
-import org.tianocore.build.toolchain.ToolChainKey;\r
-import org.tianocore.build.toolchain.ToolChainMap;\r
-\r
import java.io.File;\r
import java.util.Iterator;\r
import java.util.Set;\r
\r
+import org.apache.tools.ant.Project;\r
+import org.tianocore.build.exception.GenBuildException;\r
+import org.tianocore.build.toolchain.ToolChainKey;\r
+import org.tianocore.build.toolchain.ToolChainMap;\r
+\r
\r
/**\r
\r
\r
@param toolChainFile File object representing the tool chain configuration file\r
**/\r
- public ToolChainConfig (File toolChainFile) throws GenBuildException {\r
- config = getToolChainConfig(toolChainFile);\r
+ public ToolChainConfig (Project prj, File toolChainFile) throws GenBuildException {\r
+ config = getToolChainConfig(prj, toolChainFile);\r
parseToolChainDefKey(config.keySet());\r
}\r
\r
\r
@return ToolChainMap\r
**/\r
- private ToolChainMap getToolChainConfig(File ConfigFile) throws GenBuildException {\r
+ private ToolChainMap getToolChainConfig(Project prj, File ConfigFile) throws GenBuildException {\r
ToolChainMap map = new ToolChainMap();\r
- String[][] toolChainDef = ConfigReader.parse(ConfigFile);\r
+ String[][] toolChainDef = ConfigReader.parse(prj, ConfigFile);\r
\r
for (int i = 0; i < toolChainDef[0].length; ++i) {\r
map.put(toolChainDef[0][i], toolChainDef[1][i]);\r