private ModuleIdentification moduleId;\r
\r
private Vector<Property> properties = new Vector<Property>();\r
- \r
+\r
private static Stack<Hashtable> backupPropertiesStack = new Stack<Hashtable>();\r
\r
- \r
- private static Hashtable backupProperties;\r
+ private boolean isSingleModuleBuild = false;\r
\r
/**\r
Public construct method. It is necessary for ANT task.\r
SurfaceAreaQuery.setDoc(doc);\r
moduleId = SurfaceAreaQuery.getMsaHeader();\r
}\r
- String[] producedLibraryClasses = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED");\r
+ String[] producedLibraryClasses = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED",null);\r
if (producedLibraryClasses.length == 0) {\r
moduleId.setLibrary(false);\r
}\r
//\r
// Judge whether it is single module build or not\r
//\r
- if (getProject().getProperty("PLATFORM") == null) {\r
+ if (isSingleModuleBuild) {\r
//\r
// Single Module build\r
//\r
//\r
// Platform build. Restore the platform related info\r
//\r
- String platformName = getProject().getProperty("PLATFORM");\r
- PlatformIdentification platformId = GlobalData.getPlatform(platformName);\r
+ String filename = getProject().getProperty("PLATFORM_FILE");\r
+ PlatformIdentification platformId = GlobalData.getPlatform(filename);\r
getProject().setProperty("PLATFORM_DIR", platformId.getFpdFile().getParent().replaceAll("(\\\\)", "/"));\r
getProject().setProperty("PLATFORM_RELATIVE_DIR", platformId.getPlatformRelativeDir().replaceAll("(\\\\)", "/"));\r
\r
getProject().setProperty("TARGET", targetList[i]);\r
String[] toolchainList = GlobalData.getToolChainInfo().getTagnames();\r
for(int j = 0; j < toolchainList.length; j ++){\r
+ //\r
+ // check if any tool is defined for current target + toolchain + arch\r
+ // don't do anything if no tools found\r
+ // \r
+ if (GlobalData.isCommandSet(targetList[i], toolchainList[j], archList[k]) == false) {\r
+ System.out.println("Warning: No build issued. No tools found for [target=" + targetList[i] + " toolchain=" + toolchainList[j] + " arch=" + archList[k] + "]\n");\r
+ continue;\r
+ }\r
+\r
//\r
// Prepare for toolchain related common properties\r
// TOOLCHAIN\r
}\r
popProperties();\r
}catch (Exception e){\r
- e.printStackTrace();\r
throw new BuildException(e.getMessage());\r
}\r
}\r
//\r
// Read ACTIVE_PLATFORM's FPD file (Call FpdParserTask's method)\r
//\r
- String activePlatformName = getProject().getProperty("ACTIVE_PLATFORM");\r
+ String filename = getProject().getProperty("PLATFORM_FILE");\r
\r
- if (activePlatformName == null){\r
+ if (filename == null){\r
throw new BuildException("Plese set ACTIVE_PLATFORM if you want to build a single module. ");\r
}\r
\r
- PlatformIdentification platformId = GlobalData.getPlatform(activePlatformName);\r
+ PlatformIdentification platformId = GlobalData.getPlatform(filename);\r
\r
//\r
// Read FPD file\r
// Prepare for Platform related common properties\r
// PLATFORM, PLATFORM_DIR, PLATFORM_RELATIVE_DIR\r
//\r
- getProject().setProperty("PLATFORM", activePlatformName);\r
+ getProject().setProperty("PLATFORM", platformId.getName());\r
getProject().setProperty("PLATFORM_DIR", platformId.getFpdFile().getParent().replaceAll("(\\\\)", "/"));\r
getProject().setProperty("PLATFORM_RELATIVE_DIR", platformId.getPlatformRelativeDir().replaceAll("(\\\\)", "/"));\r
}\r
key[4] = "NAME";\r
String cmdName = GlobalData.getCommandSetting(key, fpdModuleId);\r
File cmdFile = new File(cmdPath + File.separatorChar + cmdName);\r
-// GlobalData.log.info("PATH: " + cmdFile.getPath());\r
getProject().setProperty(cmd[m], cmdFile.getPath().replaceAll("(\\\\)", "/"));\r
\r
//\r
//\r
key[4] = "FLAGS";\r
String cmdFlags = GlobalData.getCommandSetting(key, fpdModuleId);\r
-// GlobalData.log.info("Flags: " + cmdFlags);\r
Set<String> addset = new LinkedHashSet<String>();\r
Set<String> subset = new LinkedHashSet<String>();\r
putFlagsToSet(addset, cmdFlags);\r
//\r
key[4] = "EXT";\r
String extName = GlobalData.getCommandSetting(key, fpdModuleId);\r
-// GlobalData.log.info("Ext: " + extName);\r
if ( extName != null && ! extName.equalsIgnoreCase("")) {\r
getProject().setProperty(cmd[m] + "_EXT", extName);\r
}\r
//\r
key[4] = "FAMILY";\r
String toolChainFamily = GlobalData.getCommandSetting(key, fpdModuleId);\r
-// GlobalData.log.info("FAMILY: " + toolChainFamily);\r
if (toolChainFamily != null) {\r
getProject().setProperty(cmd[m] + "_FAMILY", toolChainFamily);\r
}\r
//\r
key[4] = "SPATH";\r
String spath = GlobalData.getCommandSetting(key, fpdModuleId);\r
-// GlobalData.log.info("SPATH: " + spath);\r
if (spath != null) {\r
getProject().setProperty(cmd[m] + "_SPATH", spath.replaceAll("(\\\\)", "/"));\r
}\r
//\r
key[4] = "DPATH";\r
String dpath = GlobalData.getCommandSetting(key, fpdModuleId);\r
-// GlobalData.log.info("DPATH: " + dpath);\r
if (dpath != null) {\r
getProject().setProperty(cmd[m] + "_DPATH", dpath.replaceAll("(\\\\)", "/"));\r
}\r
// AutoGen\r
//\r
\r
- AutoGen autogen = new AutoGen(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());\r
autogen.genAutogen();\r
\r
\r
getProject().setProperty(item, (String)backupProperties.get(item));\r
}\r
}\r
+\r
+ public void setSingleModuleBuild(boolean isSingleModuleBuild) {\r
+ this.isSingleModuleBuild = isSingleModuleBuild;\r
+ }\r
}\r