import java.util.LinkedHashSet;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.io.FileOutputStream;\r
+import java.io.OutputStreamWriter;\r
\r
import javax.xml.parsers.DocumentBuilder;\r
import javax.xml.parsers.DocumentBuilderFactory;\r
/// Pass: TARGET, TOOLCHAIN, ARCH\r
/// PACKAGE, PACKAGE_GUID, PACKAGE_VERSION\r
///\r
- String[] inheritProperties = {"ARCH", "MODULE_GUID", "MODULE_VERSION", "PLATFORM", "PACKAGE_GUID", "PACKAGE_VERSION"};\r
+ String[] inheritProperties = {"ARCH", "MODULE_GUID", "MODULE_VERSION", "PLATFORM_FILE", "PACKAGE_GUID", "PACKAGE_VERSION"};\r
\r
///\r
/// The information at the header of <em>build.xml</em>.\r
// generate all directory path\r
//\r
(new File(file.getParent())).mkdirs();\r
- Result result = new StreamResult(file);\r
+ FileOutputStream outputStream = new FileOutputStream(file);\r
+ Result result = new StreamResult(new OutputStreamWriter(outputStream));\r
\r
//\r
// Write the DOM document to the file\r
xformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
xformer.transform(source, result);\r
} catch (Exception ex) {\r
- ex.printStackTrace();\r
throw new BuildException("Module [" + fpdModuleId.getModule().getName() + "] generating build file failed.\n" + ex.getMessage());\r
}\r
}\r
// project.setProperty("LIBS", propertyLibs.replaceAll("(\\\\)", "/"));\r
}\r
\r
+ /**\r
+ Return the name of the directory that corresponds to the architecture.\r
+ This is a translation from the XML Schema tag to a directory that\r
+ corresponds to our directory name coding convention.\r
+ \r
+ **/\r
+ private String archDir(String arch) {\r
+ return arch.replaceFirst("X64", "x64")\r
+ .replaceFirst("IPF", "Ipf")\r
+ .replaceFirst("IA32", "Ia32")\r
+ .replaceFirst("ARM", "Arm")\r
+ .replaceFirst("EBC", "Ebc");\r
+ }\r
+\r
/**\r
Generate the build source files elements for BaseName_build.xml. \r
\r
// Prepare the includes: PackageDependencies and Output debug direactory\r
//\r
Set<String> includes = new LinkedHashSet<String>();\r
+ String arch = project.getProperty("ARCH");\r
\r
//\r
// WORKSPACE\r
//\r
- includes.add("${WORKSPACE_DIR}");\r
+ includes.add("${WORKSPACE_DIR}" + File.separatorChar);\r
\r
//\r
// Module iteself\r
//\r
includes.add("${MODULE_DIR}");\r
- includes.add("${MODULE_DIR}" + File.separatorChar + "${ARCH}");\r
+ includes.add("${MODULE_DIR}" + File.separatorChar + archDir(arch));\r
\r
//\r
// Packages in PackageDenpendencies\r
GlobalData.refreshPackageIdentification(packageDependencies[i]);\r
File packageFile = packageDependencies[i].getSpdFile();\r
includes.add(packageFile.getParent() + File.separatorChar + "Include");\r
- includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+ includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
}\r
\r
//\r
GlobalData.refreshPackageIdentification(libraryPackageDependencies[j]);\r
File packageFile = libraryPackageDependencies[j].getSpdFile();\r
includes.add(packageFile.getParent() + File.separatorChar + "Include");\r
- includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+ includes.add(packageFile.getParent() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
}\r
SurfaceAreaQuery.pop();\r
}\r
// The package which the module belongs to\r
// TBD\r
includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include");\r
- includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include" + File.separatorChar + "${ARCH}");\r
+ includes.add(fpdModuleId.getModule().getPackage().getPackageDir() + File.separatorChar + "Include" + File.separatorChar + archDir(arch));\r
\r
//\r
// Debug files output directory\r
return ;\r
}\r
if (fp.initSections(ffsKeyword, project, fpdModuleId)) {\r
- String targetFilename = fpdModuleId.getModule().getGuid() + "-" + fpdModuleId.getModule().getName() + FpdParserTask.getSuffix(fpdModuleId.getModule().getModuleType());\r
+ String targetFilename = fpdModuleId.getModule().getGuid() + "-" + "${BASE_NAME}" + FpdParserTask.getSuffix(fpdModuleId.getModule().getModuleType());\r
String[] list = fp.getGenSectionElements(document, "${BASE_NAME}", fpdModuleId.getModule().getGuid(), targetFilename);\r
\r
for (int i = 0; i < list.length; i++) {\r