Added support for macro/property in tools_def.txt. Now you can define a property...
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 13 Dec 2006 06:35:03 +0000 (06:35 +0000)
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 13 Dec 2006 06:35:03 +0000 (06:35 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2094 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Java/Source/GenBuild/org/tianocore/build/FrameworkBuildTask.java
Tools/Java/Source/GenBuild/org/tianocore/build/global/GlobalData.java
Tools/Java/Source/GenBuild/org/tianocore/build/toolchain/ConfigReader.java
Tools/Java/Source/GenBuild/org/tianocore/build/toolchain/ToolChainConfig.java

index 84e799d..e240150 100644 (file)
@@ -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
@@ -333,7 +333,7 @@ public class FrameworkBuildTask extends Task{
     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
index 9655887..d339043 100644 (file)
@@ -28,6 +28,7 @@ import java.util.List;
 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
@@ -146,7 +147,7 @@ public class GlobalData {
       @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
@@ -169,7 +170,7 @@ public class GlobalData {
         //\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
index fa1fc23..4275f8e 100644 (file)
@@ -14,6 +14,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\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
@@ -38,8 +40,8 @@ public class ConfigReader {
 \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
@@ -53,7 +55,7 @@ public class ConfigReader {
       @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
@@ -87,7 +89,11 @@ public class ConfigReader {
                 // 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
index f78d49f..9989ab6 100644 (file)
@@ -15,14 +15,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\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
@@ -44,8 +45,8 @@ public class ToolChainConfig {
       \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
@@ -57,9 +58,9 @@ public class ToolChainConfig {
        \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