@throws BuildException\r
FPD file is not valid.\r
**/\r
- public void parseFpdFile(File fpdFile) throws BuildException {\r
+ public void parseFpdFile(File fpdFile, ModuleIdentification singleModuleId) throws BuildException {\r
this.fpdFile = fpdFile;\r
- parseFpdFile();\r
+ parseFpdFile(singleModuleId);\r
}\r
\r
+ private void parseFpdFile() throws BuildException {\r
+ parseFpdFile(null);\r
+ }\r
/**\r
Parse FPD file.\r
\r
@throws BuildException\r
FPD file is not valid.\r
**/\r
- private void parseFpdFile() throws BuildException {\r
+ private void parseFpdFile(ModuleIdentification singleModuleId) throws BuildException {\r
try {\r
XmlObject doc = XmlObject.Factory.parse(fpdFile);\r
\r
//\r
// Parse all list modules SA\r
//\r
- parseModuleSAFiles();\r
+ parseModuleSAFiles(singleModuleId);\r
\r
//\r
// TBD. Deal PCD and BuildOption related Info\r
/**\r
Parse all modules listed in FPD file.\r
**/\r
- private void parseModuleSAFiles() throws EdkException{\r
+ private void parseModuleSAFiles(ModuleIdentification singleModuleId) throws EdkException{\r
Map<FpdModuleIdentification, Map<String, XmlObject>> moduleSAs = SurfaceAreaQuery.getFpdModules();\r
\r
//\r
while (iter.hasNext()) {\r
FpdModuleIdentification fpdModuleId = (FpdModuleIdentification) iter.next();\r
\r
+ //\r
+ // If is stand-alone module build, just parse this module, pass others\r
+ //\r
+ if (singleModuleId != null) {\r
+ //\r
+ // pass others modules\r
+ //\r
+ if ( ! fpdModuleId.getModule().equals(singleModuleId)) {\r
+ continue ;\r
+ }\r
+ }\r
+ \r
//\r
// Judge if Module is existed?\r
// TBD\r
-\r
GlobalData.registerFpdModuleSA(fpdModuleId, moduleSAs.get(fpdModuleId));\r
\r
//\r
public void setType(String type) {\r
this.type = type;\r
}\r
+ \r
+ public String getAllArchForModule(ModuleIdentification moduleId) {\r
+ String archs = "";\r
+ Iterator<FpdModuleIdentification> iter = outfiles.keySet().iterator();\r
+ while (iter.hasNext()) {\r
+ FpdModuleIdentification fpdModuleId = iter.next();\r
+ \r
+ if (fpdModuleId.getModule().equals(moduleId)) {\r
+ archs += fpdModuleId.getArch() + " ";\r
+ }\r
+ }\r
+ \r
+ return archs;\r
+ }\r
}\r