import java.util.HashSet;\r
import java.util.Iterator;\r
import java.util.List;\r
+import java.util.ListIterator;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.Vector;\r
import java.util.logging.Logger;\r
\r
/**\r
///\r
private static Set<FpdModuleIdentification> builtModules = new HashSet<FpdModuleIdentification>();\r
\r
- ///\r
- /// PCD memory database stored all PCD information which collected from FPD,MSA and SPD.\r
- ///\r
-// private static final MemoryDatabaseManager pcdDbManager = new MemoryDatabaseManager();\r
-\r
- ///\r
- /// build target + tool chain family/tag name + arch + command types + command options\r
- ///\r
- private static Map<String, Object> toolChainOptions;\r
- private static Map<String, Object> toolChainFamilyOptions;\r
- private static Map<String, String> toolChainDefinitions;\r
- ///\r
- ///\r
- ///\r
- private static Set<String> targets;\r
- ///\r
- ///\r
- ///\r
- private static Set<String> toolChainFamilies;\r
- ///\r
- ///\r
- ///\r
- private static Set<String> toolChains;\r
- ///\r
- /// keep track which toolchain family a toolchain tag belongs to\r
- ///\r
- private static Map<String, Set<String>> toolChainFamilyMap;\r
- private static Map<String, Set<String>> toolChainCommandMap;\r
- \r
- ///\r
- /// list of Arch: EBC, ARM, IA32, X64, IPF, PPC\r
- ///\r
- private static Set<String> archs;\r
-\r
- ///\r
- /// list of Command Type: CC, LIB, LINK, ASL, ASM, ASMLINK, PP\r
- ///\r
- private static Set<String> commandTypes;\r
- \r
/**\r
Parse framework database (DB) and all SPD files listed in DB to initialize\r
the environment for next build. This method will only be executed only once\r
return result;\r
}\r
\r
- ////// Tool Chain Related, try to refine and put some logic process to ToolChainFactory\r
- public static void setBuildToolChainFamilyOptions(Map<String, Object> map) {\r
- toolChainFamilyOptions = map;\r
- }\r
-\r
- public static Map<String, Object> getToolChainFamilyOptions() {\r
- return toolChainFamilyOptions;\r
- }\r
-\r
- public static void setBuildToolChainOptions(Map<String, Object> map) {\r
- toolChainOptions = map;\r
- }\r
-\r
- public static Map<String, Object> getToolChainOptions() {\r
- return toolChainOptions;\r
- }\r
-\r
- public static void setTargets(Set<String> targetSet) {\r
- GlobalData.log.info("TargetSet: " + targetSet);\r
- targets = targetSet;\r
- }\r
-\r
- public static String[] getTargets() {\r
- return (String[])targets.toArray(new String[targets.size()]);\r
- }\r
-\r
- public static void setToolChains(Set<String> toolChainSet) {\r
- toolChains = toolChainSet;\r
- }\r
-\r
- public static String[] getToolChains() {\r
- String[] toolChainList = new String[toolChains.size()];\r
- return (String[])toolChains.toArray(toolChainList);\r
- }\r
-\r
- public static void setToolChainFamilies(Set<String> toolChainFamilySet) {\r
- toolChainFamilies = toolChainFamilySet;\r
- }\r
-\r
- public static void setToolChainFamiliyMap(Map<String, Set<String>> map) {\r
- /*\r
- Set<String> keys = map.keySet();\r
- Iterator it = keys.iterator();\r
- while (it.hasNext()) {\r
- String toolchain = (String)it.next();\r
- Set<String> familyMap = (Set<String>)map.get(toolchain);\r
- Iterator fit = familyMap.iterator();\r
- System.out.print(toolchain + ": ");\r
- while (fit.hasNext()) {\r
- System.out.print((String)fit.next() + " ");\r
- }\r
- System.out.println("");\r
+ \r
+ public static Vector<String> getModuleSupArchs(ModuleIdentification mi) throws Exception{\r
+ Vector<String> vArchs = null;\r
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)getModuleXmlObject(mi);\r
+ if (msa.getModuleDefinitions() == null || msa.getModuleDefinitions().getSupportedArchitectures() == null) {\r
+ return vArchs;\r
}\r
- */\r
- toolChainFamilyMap = map;\r
- }\r
-\r
- public static String[] getToolChainFamilies() {\r
- String[] toolChainFamilyList = new String[toolChainFamilies.size()];\r
- return (String[])toolChainFamilies.toArray(toolChainFamilyList);\r
- }\r
-\r
- public static String[] getToolChainFamilies(String toolChain) {\r
- Set<String> familySet = (Set<String>)toolChainFamilyMap.get(toolChain);\r
- String[] toolChainFamilyList = new String[familySet.size()];\r
- return (String[])familySet.toArray(toolChainFamilyList);\r
- }\r
-\r
- public static Set<String> getToolChainFamilySet(String toolChain) {\r
- return (Set<String>)toolChainFamilyMap.get(toolChain);\r
- }\r
-\r
- public static void setArchs(Set<String> archSet) {\r
- archs = archSet;\r
- }\r
-\r
- public static String[] getArchs() {\r
- String[] archList = new String[archs.size()];\r
- return (String[])archs.toArray(archList);\r
- }\r
- /*\r
-\r
- */\r
- public static void SetCommandTypes(Set<String> commandTypeSet) {\r
- commandTypes = commandTypeSet;\r
- }\r
- /*\r
-\r
- */\r
- public static void SetCommandTypes(Map<String, Set<String>> commandTypeMap) {\r
- toolChainCommandMap = commandTypeMap;\r
- }\r
- /*\r
-\r
- */\r
- public static String[] getCommandTypes() {\r
- String[] commandList = new String[commandTypes.size()];\r
- return (String[])commandTypes.toArray(commandList);\r
- }\r
- /*\r
-\r
- */\r
- public static String[] getCommandTypes(String toolChain) {\r
- Set<String> commands = (Set<String>)toolChainCommandMap.get(toolChain);\r
- if (commands == null) {\r
- return new String[0];\r
+ ListIterator li = msa.getModuleDefinitions().getSupportedArchitectures().listIterator();\r
+ while (li.hasNext()) {\r
+ if (vArchs == null) {\r
+ vArchs = new Vector<String>();\r
+ }\r
+ vArchs.add((String)li.next());\r
}\r
-\r
- String[] commandList = new String[commands.size()];\r
- return (String[])commands.toArray(commandList);\r
- }\r
- /*\r
-\r
- */\r
- public static String getCommandSetting(String commandDescString) {\r
- return (String)toolChainDefinitions.get(commandDescString);\r
- }\r
- /*\r
-\r
- */\r
- public static void setToolChainDefinitions(Map<String, String> def) {\r
- toolChainDefinitions = def;\r
- }\r
-\r
- public static Map<String, String> getToolChainDefinitions() {\r
- return toolChainDefinitions;\r
+ \r
+ return vArchs;\r
}\r
-\r
+ \r
}\r
\r
final class KeyComparator implements Comparator<String> {\r