diff options
author | wuyizhong <wuyizhong@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-08-30 03:11:48 +0000 |
---|---|---|
committer | wuyizhong <wuyizhong@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-08-30 03:11:48 +0000 |
commit | 3790e93c7e9b5fb59721de2a54f7ea2afb8e915f (patch) | |
tree | a851c52499150ce8e701fef07597e7e03f458b64 | |
parent | 52ee46a69b9178d37506bf81f11f08b938da759f (diff) | |
download | edk2-3790e93c7e9b5fb59721de2a54f7ea2afb8e915f.zip edk2-3790e93c7e9b5fb59721de2a54f7ea2afb8e915f.tar.gz edk2-3790e93c7e9b5fb59721de2a54f7ea2afb8e915f.tar.bz2 |
Add Arch Check for single module build. To Fix T167 & T224.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1404 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java | 3 | ||||
-rw-r--r-- | Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java | 40 |
2 files changed, 36 insertions, 7 deletions
diff --git a/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java b/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java index 42d3313..9b4dfa3 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java +++ b/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java @@ -342,7 +342,8 @@ public class GenBuildTask extends Ant { //
FpdParserTask fpdParser = new FpdParserTask();
fpdParser.setProject(getProject());
- fpdParser.parseFpdFile(platformId.getFpdFile());
+ fpdParser.parseFpdFile(platformId.getFpdFile(), moduleId);
+ PropertyManager.setProperty("ARCH", fpdParser.getAllArchForModule(moduleId));
//
// Prepare for Platform related common properties
diff --git a/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java b/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java index f0b1f02..873da77 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java +++ b/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java @@ -305,18 +305,21 @@ public class FpdParserTask extends Task { @throws BuildException
FPD file is not valid.
**/
- public void parseFpdFile(File fpdFile) throws BuildException {
+ public void parseFpdFile(File fpdFile, ModuleIdentification singleModuleId) throws BuildException {
this.fpdFile = fpdFile;
- parseFpdFile();
+ parseFpdFile(singleModuleId);
}
+ private void parseFpdFile() throws BuildException {
+ parseFpdFile(null);
+ }
/**
Parse FPD file.
@throws BuildException
FPD file is not valid.
**/
- private void parseFpdFile() throws BuildException {
+ private void parseFpdFile(ModuleIdentification singleModuleId) throws BuildException {
try {
XmlObject doc = XmlObject.Factory.parse(fpdFile);
@@ -356,7 +359,7 @@ public class FpdParserTask extends Task { //
// Parse all list modules SA
//
- parseModuleSAFiles();
+ parseModuleSAFiles(singleModuleId);
//
// TBD. Deal PCD and BuildOption related Info
@@ -381,7 +384,7 @@ public class FpdParserTask extends Task { /**
Parse all modules listed in FPD file.
**/
- private void parseModuleSAFiles() throws EdkException{
+ private void parseModuleSAFiles(ModuleIdentification singleModuleId) throws EdkException{
Map<FpdModuleIdentification, Map<String, XmlObject>> moduleSAs = SurfaceAreaQuery.getFpdModules();
//
@@ -393,9 +396,20 @@ public class FpdParserTask extends Task { FpdModuleIdentification fpdModuleId = (FpdModuleIdentification) iter.next();
//
+ // If is stand-alone module build, just parse this module, pass others
+ //
+ if (singleModuleId != null) {
+ //
+ // pass others modules
+ //
+ if ( ! fpdModuleId.getModule().equals(singleModuleId)) {
+ continue ;
+ }
+ }
+
+ //
// Judge if Module is existed?
// TBD
-
GlobalData.registerFpdModuleSA(fpdModuleId, moduleSAs.get(fpdModuleId));
//
@@ -558,4 +572,18 @@ public class FpdParserTask extends Task { public void setType(String type) {
this.type = type;
}
+
+ public String getAllArchForModule(ModuleIdentification moduleId) {
+ String archs = "";
+ Iterator<FpdModuleIdentification> iter = outfiles.keySet().iterator();
+ while (iter.hasNext()) {
+ FpdModuleIdentification fpdModuleId = iter.next();
+
+ if (fpdModuleId.getModule().equals(moduleId)) {
+ archs += fpdModuleId.getArch() + " ";
+ }
+ }
+
+ return archs;
+ }
}
|