Added support for macro/property in tools_def.txt. Now you can define a property...
[mirror_edk2.git] / Tools / Java / Source / GenBuild / org / tianocore / build / toolchain / ToolChainConfig.java
index b12c436..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
@@ -83,6 +84,7 @@ public class ToolChainConfig {
             info.addTagnames(keySet[ToolChainElement.TOOLCHAIN.value]);\r
             info.addArchs(keySet[ToolChainElement.ARCH.value]);\r
             info.addCommands(keySet[ToolChainElement.TOOLCODE.value]);\r
+            info.normalize();\r
         }\r
     }\r
 \r