From 57cc2ee710e6a12621f879dd5e95dc7d4fb8cba9 Mon Sep 17 00:00:00 2001 From: jwang36 Date: Thu, 20 Jul 2006 10:40:46 +0000 Subject: [PATCH] a) Fixed the issue that the unnecessary build for not specified ARCH in single module build b) Fixed the issue that mixed case of FV name will cause invalid inf file generation c) Fixed the issue that not specified outputDir will cause tool (flashmap, efirom) cannot be launched git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1056 6f19259b-4bc3-4df7-8a09-765794883524 --- .../org/tianocore/framework/tasks/EfiRomTask.java | 2 +- .../org/tianocore/framework/tasks/FlashMapTask.java | 2 +- .../GenBuild/org/tianocore/build/GenBuildTask.java | 5 +++-- .../GenBuild/org/tianocore/build/fpd/FpdParserTask.java | 9 ++++----- .../GenBuild/org/tianocore/build/global/GlobalData.java | 6 +++++- .../org/tianocore/build/global/SurfaceAreaQuery.java | 6 +++--- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiRomTask.java b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiRomTask.java index 763b73f339..ff2be738f7 100644 --- a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiRomTask.java +++ b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/EfiRomTask.java @@ -93,7 +93,7 @@ public class EfiRomTask extends Task implements EfiDefine { /// /// output directory /// - private String outputDir = ""; + private String outputDir = "."; /// diff --git a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/FlashMapTask.java b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/FlashMapTask.java index 436fd64826..e494e564c8 100644 --- a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/FlashMapTask.java +++ b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/FlashMapTask.java @@ -117,7 +117,7 @@ public class FlashMapTask extends Task implements EfiDefine { // / // / output directory // / - private String outputDir = ""; + private String outputDir = "."; // / // / MCI file array diff --git a/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java b/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java index ec2fd1ad2f..1f020b3cc1 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java +++ b/Tools/Source/GenBuild/org/tianocore/build/GenBuildTask.java @@ -240,8 +240,9 @@ public class GenBuildTask extends Ant { // // Whether the module is built before // - if (GlobalData.isModuleBuilt(fpdModuleId)) { - return ; + if ((moduleId.isLibrary() == false && GlobalData.hasFpdModuleSA(fpdModuleId) == false) + || GlobalData.isModuleBuilt(fpdModuleId)) { + continue; } else { GlobalData.registerBuiltModule(fpdModuleId); diff --git a/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java b/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java index c85cda83e2..39d4d6f2d4 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java +++ b/Tools/Source/GenBuild/org/tianocore/build/fpd/FpdParserTask.java @@ -220,9 +220,9 @@ public class FpdParserTask extends Task { getProject().setProperty(globalVariables[j][0], globalVariables[j][1]); } - getProject().setProperty("FV_FILENAME", validFv[i].toUpperCase()); + getProject().setProperty("FV_FILENAME", validFv[i]); - File fvFile = new File(getProject().replaceProperties( getProject().getProperty("FV_DIR") + File.separatorChar + validFv[i].toUpperCase() + ".inf")); + File fvFile = new File(getProject().replaceProperties( getProject().getProperty("FV_DIR") + File.separatorChar + validFv[i] + ".inf")); fvFile.getParentFile().mkdirs(); try { @@ -295,7 +295,7 @@ public class FpdParserTask extends Task { // // Files // - Set filesSet = fvs.get(validFv[i].toUpperCase()); + Set filesSet = fvs.get(validFv[i]); if (filesSet != null) { FpdModuleIdentification[] files = filesSet.toArray(new FpdModuleIdentification[filesSet.size()]); bw.write("[files]"); @@ -503,8 +503,7 @@ public class FpdParserTask extends Task { if (fvName == null || fvName.trim().length() == 0) { fvName = "NULL"; } - String upcaseFvName = fvName.toUpperCase(); - String[] fvNameArray = upcaseFvName.split("[, \t]+"); + String[] fvNameArray = fvName.split("[, \t]+"); for (int i = 0; i < fvNameArray.length; i++) { // // Put module to corresponding fvName diff --git a/Tools/Source/GenBuild/org/tianocore/build/global/GlobalData.java b/Tools/Source/GenBuild/org/tianocore/build/global/GlobalData.java index 101e14f008..18b766dc42 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/global/GlobalData.java +++ b/Tools/Source/GenBuild/org/tianocore/build/global/GlobalData.java @@ -315,7 +315,11 @@ public class GlobalData { } fpdModuleSA.put(fpdModuleId, result); } - + + public synchronized static boolean hasFpdModuleSA(FpdModuleIdentification fpdModuleId) { + return fpdModuleSA.containsKey(fpdModuleId); + } + /** Query overrided module surface area information. If current is Package or Platform build, also include the information from FPD file. diff --git a/Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java b/Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java index f795e1e521..d5683a0daa 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java +++ b/Tools/Source/GenBuild/org/tianocore/build/global/SurfaceAreaQuery.java @@ -1425,7 +1425,7 @@ public class SurfaceAreaQuery { */ public static String[][] getFpdOptions(String fvName) { String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Options' and ./FvImageNames='" - + fvName.toUpperCase() + "']/FvImageOptions" }; + + fvName + "']/FvImageOptions" }; Object[] queryResult = get("PlatformSurfaceArea", xPath); if (queryResult == null) { return new String[0][]; @@ -1493,7 +1493,7 @@ public class SurfaceAreaQuery { */ public static String[][] getFpdAttributes(String fvName) { String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Attributes' and ./FvImageNames='" - + fvName.toUpperCase() + "']/FvImageOptions" }; + + fvName + "']/FvImageOptions" }; Object[] queryResult = get("PlatformSurfaceArea", xPath); if (queryResult == null) { return new String[0][]; @@ -1563,7 +1563,7 @@ public class SurfaceAreaQuery { * @returns empty list if nothing is there */ public static String[][] getFpdComponents(String fvName) { - String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Components' and ./FvImageNames='"+ fvName.toUpperCase() + "']/FvImageOptions" }; + String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Components' and ./FvImageNames='"+ fvName + "']/FvImageOptions" }; Object[] queryResult = get("PlatformSurfaceArea", xPath); if (queryResult == null) { return new String[0][];