- applyLibraryInstance(document, ele);\r
- root.appendChild(ele);\r
- //\r
- // compile all source files\r
- //\r
- root.appendChild(document.createComment("sourcefiles target"));\r
- ele = document.createElement("target");\r
- ele.setAttribute("name", "sourcefiles");\r
- //\r
- // Parse all sourfiles but files specified in sections\r
- //\r
- applyCompileElement(document, ele);\r
- root.appendChild(ele);\r
- //\r
- // generate the init target\r
- // main purpose is create all nessary pathes\r
- // generate the sections target\r
- //\r
- root.appendChild(document.createComment("sections target"));\r
- ele = document.createElement("target");\r
- ele.setAttribute("name", "sections");\r
- applySectionsElement(document, ele, fp);\r
- root.appendChild(ele);\r
- //\r
- // generate the output target\r
- //\r
- root.appendChild(document.createComment("output target"));\r
- ele = document.createElement("target");\r
- ele.setAttribute("name", "output");\r
- applyOutputElement(document, ele, fp);\r
- root.appendChild(ele);\r
- //\r
- // generate the clean target\r
- //\r
- root.appendChild(document.createComment("clean target"));\r
- ele = document.createElement("target");\r
- ele.setAttribute("name", "clean");\r
- applyCleanElement(document, ele);\r
- root.appendChild(ele);\r
- //\r
- // generate the Clean All target\r
- //\r
- root.appendChild(document.createComment("Clean All target"));\r
- ele = document.createElement("target");\r
- ele.setAttribute("name", "cleanall");\r
- applyDeepcleanElement(document, ele);\r
- root.appendChild(ele);\r
- //\r
- // add the root element to the document\r
- //\r
- document.appendChild(rootComment);\r
- document.appendChild(root);\r
- //\r
- // Prepare the DOM document for writing\r
- //\r
- Source source = new DOMSource(document);\r
- //\r
- // Prepare the output file\r
- //\r
- File file = new File(getProject().getProperty("DEST_DIR_OUTPUT") + File.separatorChar + baseName\r
- + "_build.xml");\r
- //\r
- // generate all directory path\r
- //\r
- (new File(file.getParent())).mkdirs();\r
- Result result = new StreamResult(file);\r
- //\r
- // Write the DOM document to the file\r
- //\r
- Transformer xformer = TransformerFactory.newInstance().newTransformer();\r
- xformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");\r
- xformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
- xformer.transform(source, result);\r
- } catch (Exception ex) {\r
- throw new BuildException("Module [" + baseName + "] generating build file failed.\n" + ex.getMessage());\r
- }\r
- }\r
-\r
- /**\r
- Generate the clean elements for BaseName_build.xml. \r
- \r
- @param document current BaseName_build.xml XML document\r
- @param root Root element for current\r
- **/\r
- private void applyCleanElement(Document document, Node root) {\r
- String[] libinstances = libraries.toArray(new String[libraries.size()]);\r
- for (int i = 0; i < libinstances.length; i++) {\r
- File file = new File(GlobalData.getModulePath(libinstances[i]) + File.separatorChar + "build.xml");\r
-\r
- Element ifEle = document.createElement("if");\r
- Element availableEle = document.createElement("available");\r
- availableEle.setAttribute("file", file.getPath());\r
- ifEle.appendChild(availableEle);\r
- Element elseEle = document.createElement("then");\r
-\r
- Element ele = document.createElement("ant");\r
- ele.setAttribute("antfile", file.getPath());\r
- ele.setAttribute("inheritAll", "false");\r
- ele.setAttribute("target", libinstances[i] + "_clean");\r
- //\r
- // Workspace_DIR\r
- //\r
- Element property = document.createElement("property");\r
- property.setAttribute("name", "WORKSPACE_DIR");\r
- property.setAttribute("value", "${WORKSPACE_DIR}");\r
- ele.appendChild(property);\r
- //\r
- // Package Dir\r
- //\r
- property = document.createElement("property");\r
- property.setAttribute("name", "PACKAGE_DIR");\r
- property.setAttribute("value", "${WORKSPACE_DIR}" + File.separatorChar\r
- + GlobalData.getPackagePathForModule(libinstances[i]));\r
- ele.appendChild(property);\r
- //\r
- // ARCH\r
- //\r
- property = document.createElement("property");\r
- property.setAttribute("name", "ARCH");\r
- property.setAttribute("value", "${ARCH}");\r
- ele.appendChild(property);\r
- //\r
- // TARGET\r
- //\r
- property = document.createElement("property");\r
- property.setAttribute("name", "TARGET");\r
- property.setAttribute("value", "${TARGET}");\r
- ele.appendChild(property);\r
- //\r
- // PACKAGE\r