]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/GenBuild/org/tianocore/build/global/GlobalData.java
Fixed EDKT532 and EDKT533
[mirror_edk2.git] / Tools / Java / Source / GenBuild / org / tianocore / build / global / GlobalData.java
index 437858a711b634293771834e6f20b6638e860e82..b5605d4cb12ef727db02605dd1093eee2730adf4 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
@@ -301,19 +302,20 @@ public class GlobalData {
         PackageIdentification packageId = null;\r
         Iterator iter = packageList.iterator();\r
         while (iter.hasNext()) {\r
-            packageId = (PackageIdentification)iter.next();\r
-            moduleId.setPackage(packageId);\r
-            Spd spd = spdTable.get(packageId);\r
+            PackageIdentification pid = (PackageIdentification)iter.next();\r
+            moduleId.setPackage(pid);\r
+            Spd spd = spdTable.get(pid);\r
             File tempMsaFile = null;\r
             if ((tempMsaFile = spd.getModuleFile(moduleId)) != null ) {\r
                 if (tempMsaFile.getParent().equalsIgnoreCase(moduleId.getMsaFile().getParent())) {\r
+                    packageId = pid;\r
                     break ;\r
                 }\r
                 tempMsaFile = null;\r
             }\r
         }\r
         if (packageId == null){\r
-            throw new EdkException("Can't find Module [" + moduleId.getName() + "] in any SPD package!");\r
+            throw new EdkException("Can't find Module [" + moduleId.getName() + "] in any package!");\r
         } else {\r
             return packageId;\r
         }\r
@@ -432,6 +434,12 @@ public class GlobalData {
             msaMap.put("Protocols", cloneXmlObject(msa.getProtocols(), true));\r
             msaMap.put("PPIs", cloneXmlObject(msa.getPPIs(), true));\r
             msaMap.put("Guids", cloneXmlObject(msa.getGuids(), true));\r
+            msaMap.put("Events", cloneXmlObject(msa.getEvents(), true));\r
+            msaMap.put("Hobs", cloneXmlObject(msa.getHobs(), true));\r
+            msaMap.put("Variables", cloneXmlObject(msa.getVariables(), true));\r
+            msaMap.put("SystemTables", cloneXmlObject(msa.getSystemTables(), true));\r
+            msaMap.put("DataHubs", cloneXmlObject(msa.getDataHubs(), true));\r
+            msaMap.put("HiiPackages", cloneXmlObject(msa.getHiiPackages(), true));\r
             msaMap.put("Externs", cloneXmlObject(msa.getExterns(), true));\r
             msaMap.put("PcdCoded", cloneXmlObject(msa.getPcdCoded(), true));\r
             msaMap.put("ModuleBuildOptions", cloneXmlObject(msa.getModuleBuildOptions(), true));\r
@@ -647,7 +655,7 @@ public class GlobalData {
                 return moduleId;\r
             }\r
         }\r
-        throw new EdkException("Can't find module GUID value " + moduleId.toGuidString() + " in " + packageId + " under the current workspace!");\r
+        throw new EdkException("Can't find " + moduleId + " under the current workspace!");\r
     }\r
 \r
     public synchronized static Set<PackageIdentification> getPackageList(){\r
@@ -690,6 +698,7 @@ public class GlobalData {
             }\r
             toolChainInfo.addCommands(toolsDef.getConfigInfo().getCommands());\r
             toolChainInfo.normalize();\r
+\r
             EdkLog.log("Init", EdkLog.EDK_ALWAYS, "Current build tool chain information summary: ");\r
             EdkLog.log("Init", EdkLog.EDK_ALWAYS, toolChainInfo + "");\r
         }\r
@@ -724,7 +733,7 @@ public class GlobalData {
         msaFamilyBuildOption.put(moduleId, toolChainOption);\r
     }\r
     \r
-    public static boolean isCommandSet(String target, String toolchain, String arch) {\r
+    public static boolean isCommandSet(String target, String toolchain, String arch) throws EdkException {\r
         String[] commands = getToolChainInfo().getCommands();\r
 \r
         for (int i = 0; i < commands.length; ++i) {\r