import org.apache.xmlbeans.XmlNormalizedString;\r
import org.apache.xmlbeans.XmlObject;\r
import org.apache.xmlbeans.XmlString;\r
-import org.tianocore.BuildOptionsDocument;\r
import org.tianocore.BuildTargetList;\r
import org.tianocore.DataIdDocument;\r
import org.tianocore.ExternsDocument;\r
import org.tianocore.FileNameConvention;\r
-import org.tianocore.FvAttributeDocument;\r
//import org.tianocore.FvImageDocument;\r
-import org.tianocore.FvImagesDocument;\r
-import org.tianocore.FvOptionDocument;\r
import org.tianocore.GuidDeclarationsDocument;\r
-import org.tianocore.GuidsDocument;\r
import org.tianocore.LibrariesDocument;\r
import org.tianocore.LibraryClassDeclarationsDocument;\r
import org.tianocore.LibraryClassDocument;\r
import org.tianocore.ModuleTypeDef;\r
import org.tianocore.MsaFilesDocument;\r
import org.tianocore.MsaHeaderDocument;\r
-import org.tianocore.OptionDocument;\r
-import org.tianocore.PPIsDocument;\r
import org.tianocore.PackageDependenciesDocument;\r
import org.tianocore.PackageHeadersDocument;\r
-import org.tianocore.PlatformDefinitionsDocument;\r
import org.tianocore.PpiDeclarationsDocument;\r
import org.tianocore.ProtocolDeclarationsDocument;\r
import org.tianocore.SpdHeaderDocument;\r
import org.tianocore.FilenameDocument.Filename;\r
import org.tianocore.MsaHeaderDocument.MsaHeader;\r
-import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
-import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
import org.tianocore.PlatformHeaderDocument;\r
import org.tianocore.frameworkwizard.platform.ui.id.FpdModuleIdentification;\r
import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification;\r
return "UNIFIED";\r
}\r
\r
- /**\r
- * Retrieve BuildOptions/Option or Arch/Option\r
- * \r
- * @param toolChainFamilyFlag\r
- * if true, retrieve options for toolchain family; otherwise for\r
- * toolchain\r
- * \r
- * @returns String[][5] name, target, toolchain, arch, coommand of options\r
- * if elements are found at the known xpath. String[0][] if dont\r
- * find element.\r
- * \r
- * @returns Empty array if nothing is there\r
- */\r
- public static String[][] getOptions(boolean toolChainFamilyFlag) {\r
- String[] xPath;\r
- String target = null;\r
- String toolchain = null;\r
- String toolchainFamily = null;\r
- List<String> archList = null;\r
- String cmd = null;\r
- String targetName = null;\r
- String optionName = null;\r
-\r
- if (toolChainFamilyFlag == true) {\r
- xPath = new String[] {\r
- "/BuildOptions/Options/Option[not(@ToolChainFamily) and not(@ToolChainTag)]",\r
- "/BuildOptions/Options/Option[@ToolChainFamily]", };\r
- } else {\r
- xPath = new String[] {\r
- "/BuildOptions/Options/Option[not(@ToolChainFamily) and not(@ToolChainTag)]",\r
- "/BuildOptions/Options/Option[@TagName]", };\r
- }\r
-\r
- XmlObject[] returns = get("FrameworkPlatformDescription", xPath);\r
- if (returns == null) {\r
- return new String[0][5];\r
- }\r
-\r
- List<String[]> optionList = new ArrayList<String[]>();\r
- OptionDocument.Option option;\r
-\r
- for (int i = 0; i < returns.length; i++) {\r
- option = (OptionDocument.Option) returns[i];\r
-\r
- //\r
- // Get Target, ToolChain(Family), Arch, Cmd, and Option from Option,\r
- // then\r
- // put to result[][5] array in above order.\r
- //\r
- String[] targetList;\r
- target = null;//Auber option.getBuildTargets();\r
- if (target != null) {\r
- targetList = target.split(" ");\r
- } else {\r
- targetList = new String[1];\r
- targetList[0] = null;\r
- }\r
-\r
- if (toolChainFamilyFlag) {\r
- toolchainFamily = option.getToolChainFamily();\r
- if (toolchainFamily != null) {\r
- toolchain = toolchainFamily.toString();\r
- } else {\r
- toolchain = null;\r
- }\r
- } else {\r
- toolchain = option.getTagName();\r
- }\r
-\r
- archList = option.getSupArchList();\r
- if (archList == null) {\r
- archList.add(null);\r
- }\r
-\r
- cmd = option.getToolCode();\r
-\r
- optionName = option.getStringValue();\r
- for (int t = 0; t < targetList.length; t++) {\r
- for (int j = 0; j < archList.size(); j++) {\r
- optionList.add(new String[] { optionName, targetList[i],\r
- toolchain, archList.get(j), cmd });\r
- }\r
- }\r
- }\r
-\r
- String[][] result = new String[optionList.size()][5];\r
- for (int i = 0; i < optionList.size(); i++) {\r
- result[i][0] = optionList.get(i)[0];\r
- result[i][1] = optionList.get(i)[1];\r
- result[i][2] = optionList.get(i)[2];\r
- result[i][3] = optionList.get(i)[3];\r
- result[i][4] = optionList.get(i)[4];\r
- }\r
- return result;\r
- }\r
-\r
public static String getBuildTarget() {\r
String[] xPath = new String[] { "/PlatformDefinitions/BuildTargets" };\r
\r
while(ispi.hasNext()) {\r
PackageIdentification pi = ispi.next();\r
if (packageVersion != null) {\r
- if (pi.getGuid().equals(packageGuid) && pi.getVersion().equals(packageVersion)) {\r
+ if (pi.getGuid().equalsIgnoreCase(packageGuid) && pi.getVersion().equals(packageVersion)) {\r
packageIdList[i] = pi;\r
break;\r
} \r
}\r
else {\r
- if (pi.getGuid().equals(packageGuid)) {\r
+ if (pi.getGuid().equalsIgnoreCase(packageGuid)) {\r
if (pi.getVersion() != null && pi.getVersion().compareTo(ver) > 0){\r
ver = pi.getVersion();\r
packageIdList[i] = pi;\r
return result;\r
}\r
\r
-\r
+ \r
\r
public static XmlObject getFpdBuildOptions() {\r
String[] xPath = new String[] { "/BuildOptions" };\r
return null;\r
}\r
\r
- /**\r
- * Get the PcdToken array from module's surface area document. The array\r
- * should contains following data:\r
- * <p>\r
- * -------------------------------------------------------------------\r
- * </p>\r
- * <p>\r
- * CName | ItemType | TokenspaceName | DefaultValue | Usage | HelpText\r
- * </p>\r
- * <p>\r
- * -------------------------------------------------------------------\r
- * </p>\r
- * <p>\r
- * Note: Until new schema applying, now we can only get CName, ItemType,\r
- * </p>\r
- * \r
- * @return 2-array table contains all information of PCD token retrieved\r
- * from MSA.\r
- */\r
- public static Object[][] etModulePCDTokenArray() {\r
- return null;\r
- // int index;\r
- // Object[][] result;\r
- // PCDs.PcdData[] pcds;\r
- // String[] xPath = new String[] { "/PcdData" };\r
- // XmlObject[] returns = get("PCDs", xPath);\r
- //\r
- // if ((returns == null) || (returns.length == 0)) {\r
- // return null;\r
- // }\r
- //\r
- // pcds = (PCDs.PcdData[]) returns;\r
- // result = new Object[pcds.length][6];\r
- // for (index = 0; index < pcds.length; index++) {\r
- // //\r
- // // Get CName\r
- // //\r
- // result[index][0] = pcds[index].getCName();\r
- // //\r
- // // Get ItemType: FEATURE_FLAG, FIXED_AT_BUILD, PATCHABLE_IN_MODLE,\r
- // // DYNAMIC, DYNAMIC_EX\r
- // //\r
- // if (pcds[index].getItemType() != null) {\r
- // result[index][1] = pcds[index].getItemType().toString();\r
- // } else {\r
- // result[index][1] = null;\r
- // }\r
- //\r
- // //\r
- // // BUGBUG: following field can *not* be got from current MSA until\r
- // // schema changed.\r
- // //\r
- // // result [index][2] = pcds[index].getTokenSpaceName();\r
- // result[index][2] = null;\r
- // result[index][3] = pcds[index].getDefaultValue();\r
- // // result [index][4] = pcds[index].getUsage ();\r
- // result[index][4] = null;\r
- // // result [index][5] = pcds[index].getHelpText ();\r
- // result[index][5] = null;\r
- // }\r
- // return result;\r
- }\r
+ \r
\r
/**\r
- * Retrieve MAS header\r
+ * Retrieve MSA header\r
* \r
* @return\r
* @return\r
// which in MsaHeader.\r
//\r
String name = msaHeader.getModuleName();\r
- String moduleType = msaHeader.getModuleType().toString();\r
+ String moduleType = "";\r
+ if (msaHeader.getModuleType() != null) {\r
+ moduleType = msaHeader.getModuleType().toString();\r
+ }\r
+ \r
String guid = msaHeader.getGuidValue();\r
String version = msaHeader.getVersion();\r
\r
* <BuildOptions>.\r
*/\r
public String getToolChainFamily() {\r
- String toolChainFamily;\r
String[] xPath = new String[] { "/BuildOptions" };\r
\r
XmlObject[] result = get("FrameworkPlatformDescription", xPath);\r