/// Module surface area file.\r
///\r
File msaFile;\r
-\r
+ \r
+ public ModuleIdentification parentId;\r
+ \r
private String type = "all"; \r
\r
///\r
private Vector<Property> properties = new Vector<Property>();\r
\r
private boolean isSingleModuleBuild = false;\r
+ \r
+ private SurfaceAreaQuery saq = null;\r
\r
/**\r
Public construct method. It is necessary for ANT task.\r
moduleId = new ModuleIdentification(moduleGuid, moduleVersion);\r
moduleId.setPackage(packageId);\r
Map<String, XmlObject> doc = GlobalData.getNativeMsa(moduleId);\r
- SurfaceAreaQuery.setDoc(doc);\r
- moduleId = SurfaceAreaQuery.getMsaHeader();\r
+ saq = new SurfaceAreaQuery(doc);\r
+ moduleId = saq.getMsaHeader();\r
} else {\r
Map<String, XmlObject> doc = GlobalData.getNativeMsa(msaFile);\r
- SurfaceAreaQuery.setDoc(doc);\r
- moduleId = SurfaceAreaQuery.getMsaHeader();\r
+ saq = new SurfaceAreaQuery(doc);\r
+ moduleId = saq.getMsaHeader();\r
}\r
- String[] producedLibraryClasses = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED",null);\r
+ String[] producedLibraryClasses = saq.getLibraryClasses("ALWAYS_PRODUCED",null);\r
if (producedLibraryClasses.length == 0) {\r
moduleId.setLibrary(false);\r
} else {\r
//\r
// Judge if arch is all supported by current module. If not, throw Exception.\r
//\r
- List moduleSupportedArchs = SurfaceAreaQuery.getModuleSupportedArchs();\r
+ List moduleSupportedArchs = saq.getModuleSupportedArchs();\r
if (moduleSupportedArchs != null) {\r
for (int k = 0; k < archList.length; k++) {\r
if ( ! moduleSupportedArchs.contains(archList[k])) {\r
\r
System.out.println("Build " + moduleId + " start >>>");\r
System.out.println("Target: " + targetList[i] + " Tagname: " + toolchainList[j] + " Arch: " + archList[k]);\r
- SurfaceAreaQuery.setDoc(GlobalData.getDoc(fpdModuleId));\r
+ saq.push(GlobalData.getDoc(fpdModuleId));\r
\r
//\r
// Prepare for all other common properties\r
//\r
FpdParserTask fpdParser = new FpdParserTask();\r
fpdParser.setProject(getProject());\r
- fpdParser.parseFpdFile(platformId.getFpdFile(), moduleId);\r
+ fpdParser.parseFpdFile(platformId.getFpdFile());\r
PropertyManager.setProperty("ARCH", fpdParser.getAllArchForModule(moduleId));\r
\r
//\r
// MODULE_DIR, MODULE_RELATIVE_DIR\r
//\r
PropertyManager.setProperty("MODULE", moduleId.getName());\r
- String baseName = SurfaceAreaQuery.getModuleOutputFileBasename();\r
+ String baseName = saq.getModuleOutputFileBasename();\r
if (baseName == null) {\r
PropertyManager.setProperty("BASE_NAME", moduleId.getName());\r
} else {\r
\r
private void applyBuild(String buildTarget, String buildTagname, FpdModuleIdentification fpdModuleId) throws BuildException{\r
//\r
- // AutoGen\r
+ // Call AutoGen to generate AutoGen.c and AutoGen.h\r
//\r
-\r
- AutoGen autogen = new AutoGen(getProject().getProperty("FV_DIR"), getProject().getProperty("DEST_DIR_DEBUG"), fpdModuleId.getModule(),fpdModuleId.getArch());\r
+ AutoGen autogen = new AutoGen(getProject().getProperty("FV_DIR"), getProject().getProperty("DEST_DIR_DEBUG"), fpdModuleId.getModule(),fpdModuleId.getArch(), saq);\r
autogen.genAutogen();\r
\r
-\r
//\r
// Get compiler flags\r
//\r
//\r
// Prepare LIBS\r
//\r
- ModuleIdentification[] libinstances = SurfaceAreaQuery.getLibraryInstance(fpdModuleId.getArch());\r
+ ModuleIdentification[] libinstances = saq.getLibraryInstance(fpdModuleId.getArch());\r
String propertyLibs = "";\r
for (int i = 0; i < libinstances.length; i++) {\r
propertyLibs += " " + getProject().getProperty("BIN_DIR") + File.separatorChar + libinstances[i].getName() + ".lib";\r
// Generate ${BASE_NAME}_build.xml\r
// TBD\r
//\r
- String ffsKeyword = SurfaceAreaQuery.getModuleFfsKeyword();\r
- ModuleBuildFileGenerator fileGenerator = new ModuleBuildFileGenerator(getProject(), ffsKeyword, fpdModuleId, includes);\r
+ String ffsKeyword = saq.getModuleFfsKeyword();\r
+ ModuleBuildFileGenerator fileGenerator = new ModuleBuildFileGenerator(getProject(), ffsKeyword, fpdModuleId, includes, saq);\r
String buildFilename = getProject().getProperty("DEST_DIR_OUTPUT") + File.separatorChar + moduleId.getName() + "_build.xml";\r
fileGenerator.genBuildFile(buildFilename);\r
\r
//\r
// Packages in PackageDenpendencies\r
//\r
- PackageIdentification[] packageDependencies = SurfaceAreaQuery.getDependencePkg(fpdModuleId.getArch());\r
+ PackageIdentification[] packageDependencies = saq.getDependencePkg(fpdModuleId.getArch());\r
for (int i = 0; i < packageDependencies.length; i++) {\r
GlobalData.refreshPackageIdentification(packageDependencies[i]);\r
File packageFile = packageDependencies[i].getSpdFile();\r
//\r
// All Dependency Library Instance's PackageDependencies\r
//\r
- ModuleIdentification[] libinstances = SurfaceAreaQuery.getLibraryInstance(fpdModuleId.getArch());\r
+ ModuleIdentification[] libinstances = saq.getLibraryInstance(fpdModuleId.getArch());\r
for (int i = 0; i < libinstances.length; i++) {\r
- SurfaceAreaQuery.push(GlobalData.getDoc(libinstances[i], fpdModuleId.getArch()));\r
- PackageIdentification[] libraryPackageDependencies = SurfaceAreaQuery.getDependencePkg(fpdModuleId.getArch());\r
+ saq.push(GlobalData.getDoc(libinstances[i], fpdModuleId.getArch()));\r
+ PackageIdentification[] libraryPackageDependencies = saq.getDependencePkg(fpdModuleId.getArch());\r
for (int j = 0; j < libraryPackageDependencies.length; j++) {\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 + archDir(arch));\r
}\r
- SurfaceAreaQuery.pop();\r
+ saq.pop();\r
}\r
\r
\r
.replaceFirst("IA32", "Ia32")\r
.replaceFirst("ARM", "Arm")\r
.replaceFirst("EBC", "Ebc");\r
- } \r
+ }\r
+ \r
+ \r
+ public void setExternalProperties(Vector<Property> v) {\r
+ this.properties = v;\r
+ }\r
}\r