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
///\r
/// output directory\r
///\r
- private String outputDir = "";\r
+ private String outputDir = ".";\r
\r
\r
///\r
// /\r
// / output directory\r
// /\r
- private String outputDir = "";\r
+ private String outputDir = ".";\r
\r
// /\r
// / MCI file array\r
//\r
// Whether the module is built before\r
//\r
- if (GlobalData.isModuleBuilt(fpdModuleId)) {\r
- return ;\r
+ if ((moduleId.isLibrary() == false && GlobalData.hasFpdModuleSA(fpdModuleId) == false) \r
+ || GlobalData.isModuleBuilt(fpdModuleId)) {\r
+ continue;\r
}\r
else {\r
GlobalData.registerBuiltModule(fpdModuleId);\r
getProject().setProperty(globalVariables[j][0], globalVariables[j][1]);\r
}\r
\r
- getProject().setProperty("FV_FILENAME", validFv[i].toUpperCase());\r
+ getProject().setProperty("FV_FILENAME", validFv[i]);\r
\r
- File fvFile = new File(getProject().replaceProperties( getProject().getProperty("FV_DIR") + File.separatorChar + validFv[i].toUpperCase() + ".inf"));\r
+ File fvFile = new File(getProject().replaceProperties( getProject().getProperty("FV_DIR") + File.separatorChar + validFv[i] + ".inf"));\r
fvFile.getParentFile().mkdirs();\r
\r
try {\r
//\r
// Files\r
//\r
- Set<FpdModuleIdentification> filesSet = fvs.get(validFv[i].toUpperCase());\r
+ Set<FpdModuleIdentification> filesSet = fvs.get(validFv[i]);\r
if (filesSet != null) {\r
FpdModuleIdentification[] files = filesSet.toArray(new FpdModuleIdentification[filesSet.size()]);\r
bw.write("[files]");\r
if (fvName == null || fvName.trim().length() == 0) {\r
fvName = "NULL";\r
}\r
- String upcaseFvName = fvName.toUpperCase();\r
- String[] fvNameArray = upcaseFvName.split("[, \t]+");\r
+ String[] fvNameArray = fvName.split("[, \t]+");\r
for (int i = 0; i < fvNameArray.length; i++) {\r
//\r
// Put module to corresponding fvName\r
}\r
fpdModuleSA.put(fpdModuleId, result);\r
}\r
- \r
+\r
+ public synchronized static boolean hasFpdModuleSA(FpdModuleIdentification fpdModuleId) {\r
+ return fpdModuleSA.containsKey(fpdModuleId);\r
+ }\r
+\r
/**\r
Query overrided module surface area information. If current is Package\r
or Platform build, also include the information from FPD file. \r
*/\r
public static String[][] getFpdOptions(String fvName) {\r
String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Options' and ./FvImageNames='"\r
- + fvName.toUpperCase() + "']/FvImageOptions" };\r
+ + fvName + "']/FvImageOptions" };\r
Object[] queryResult = get("PlatformSurfaceArea", xPath);\r
if (queryResult == null) {\r
return new String[0][];\r
*/\r
public static String[][] getFpdAttributes(String fvName) {\r
String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Attributes' and ./FvImageNames='"\r
- + fvName.toUpperCase() + "']/FvImageOptions" };\r
+ + fvName + "']/FvImageOptions" };\r
Object[] queryResult = get("PlatformSurfaceArea", xPath);\r
if (queryResult == null) {\r
return new String[0][];\r
* @returns empty list if nothing is there\r
*/\r
public static String[][] getFpdComponents(String fvName) {\r
- String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Components' and ./FvImageNames='"+ fvName.toUpperCase() + "']/FvImageOptions" };\r
+ String[] xPath = new String[] { "/Flash/FvImages/FvImage[@Type='Components' and ./FvImageNames='"+ fvName + "']/FvImageOptions" };\r
Object[] queryResult = get("PlatformSurfaceArea", xPath);\r
if (queryResult == null) {\r
return new String[0][];\r