import org.tianocore.build.global.GlobalData;\r
import org.tianocore.build.global.SurfaceAreaQuery;\r
import org.tianocore.build.id.FpdModuleIdentification;\r
+import org.tianocore.common.definitions.EdkDefinitions;\r
+import org.tianocore.common.logger.EdkLog;\r
import org.w3c.dom.Document;\r
import org.w3c.dom.Element;\r
\r
/** \r
<p><code>FfsProcess</code> is a class to find the corresponding FFS layout. </p>\r
\r
- <p>Property <code>COMMON_FILE</code> specified which file to search. The element\r
- in <code>COMMON_FILE</code> is like following: </p>\r
+ <p>The FFS Layout is like following: </p>\r
\r
<pre>\r
<Ffs type="APPLICATION">\r
///\r
/// mapping from section type to section output file extension\r
///\r
- public static final String[][] sectionExt = { { "EFI_SECTION_FREEFORM_SUBTYPE_GUID", ".sec" },\r
- { "EFI_SECTION_VERSION", ".ver" },\r
- { "EFI_SECTION_USER_INTERFACE", ".ui" },\r
- { "EFI_SECTION_DXE_DEPEX", ".dpx" },\r
- { "EFI_SECTION_PEI_DEPEX", ".dpx" }, \r
- { "EFI_SECTION_PE32", ".pe32" },\r
- { "EFI_SECTION_PIC", ".pic" }, \r
- { "EFI_SECTION_TE", ".tes" },\r
- { "EFI_SECTION_RAW", ".sec" }, \r
- { "EFI_SECTION_COMPRESSION", ".sec" },\r
- { "EFI_SECTION_GUID_DEFINED", ".sec" },\r
- { "EFI_SECTION_COMPATIBILITY16", ".sec" },\r
- { "EFI_SECTION_FIRMWARE_VOLUME_IMAGE", ".sec" } };\r
+ public static final String[][] sectionExt = EdkDefinitions.SectionTypeExtensions;\r
\r
/**\r
search in the type, if componentType is listed in type, return true; \r
}\r
\r
/**\r
- Find the corresponding FFS layout in <code>COMMON_FILE</code> if it\r
- does not specify in module's surface area. \r
+ Find the corresponding FFS layout in <code>FPD</code>. \r
\r
@param buildType Current module's component type\r
@param project Ant project\r
@return whether find the corresponding FFS layout\r
@throws BuildException\r
- If specified COMMON_FILE XML file is not valide.\r
+ If can't find FFS Layout in FPD.\r
**/\r
public boolean initSections(String buildType, Project project, FpdModuleIdentification fpdModuleId) throws BuildException {\r
//\r
// Try to find Ffs layout from FPD file\r
//\r
- SurfaceAreaQuery.push(GlobalData.getFpdBuildOptions());\r
- BuildOptionsDocument.BuildOptions.Ffs[] ffsArray = SurfaceAreaQuery.getFpdFfs();\r
- SurfaceAreaQuery.pop();\r
+ SurfaceAreaQuery saq = new SurfaceAreaQuery(GlobalData.getFpdBuildOptionsMap());\r
+ BuildOptionsDocument.BuildOptions.Ffs[] ffsArray = saq.getFpdFfs();\r
for (int i = 0; i < ffsArray.length; i++) {\r
if (isMatch(ffsArray[i].getFfsKey(), buildType)) {\r
ffsXmlObject = ffsArray[i];\r
// Otherwise report warning message\r
//\r
if (buildType == null) {\r
- System.out.println("Warning: this module doesn't specify a FfsFormatKey. ");\r
+ EdkLog.log(EdkLog.EDK_WARNING, "Warning: this module doesn't specify a FfsFormatKey. ");\r
} else {\r
throw new BuildException("Can't find the FfsFormatKey [" + buildType + "] attribute in the FPD file!"); \r
}\r