\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
+ outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${CC_DPATH}">\r
<EXTRA.INC/>\r
<argument value="${LOCAL_CC_FLAGS}"/>\r
<EXTRA.ARG/>\r
<var name="LOCAL_CC_FLAGS" value="${CC_FLAGS} /TC /Yc /Fp${DEST_DIR_DEBUG}/AutoGen.h.gch"/>\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/AutoGen.h.obj">\r
+ outputFile="${DEST_DIR_OUTPUT}/AutoGen.h.obj" dpath="${CC_DPATH}">\r
<EXTRA.INC/>\r
<argument value="${LOCAL_CC_FLAGS}"/>\r
<EXTRA.ARG/>\r
\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
+ outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${CC_DPATH}">\r
<EXTRA.INC/>\r
<argument value="${LOCAL_CC_FLAGS}"/>\r
<EXTRA.ARG/>\r
<sequential>\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${CC_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i">\r
+ outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.i" dpath="${CC_DPATH}">\r
<EXTRA.INC/>\r
<argument value="${PP_FLAGS}"/>\r
<fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
\r
<sequential>\r
<cc userdefine="on">\r
- <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}">\r
+ <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}" dpath="${PP_DPATH}">\r
<EXTRA.INC.1/>\r
<argument value="${PP_FLAGS}"/>\r
<fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
\r
<cc userdefine="on">\r
<command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
+ outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${ASM_DPATH}">\r
<EXTRA.INC.1/>\r
\r
<argument value="${ASM_FLAGS}"/>\r
<sequential>\r
<cc userdefine="on">\r
<command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
- outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
+ outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" dpath="${ASM_DPATH}">\r
<EXTRA.INC.1/>\r
\r
<argument value="${ASM_FLAGS}"/>\r
\r
<sequential>\r
<cc userdefine="on">\r
- <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}">\r
+ <command type="PP" cmd="${PP}" workdir="${DEST_DIR_OUTPUT}/@{FILEPATH}" family="${PP_FAMILY}" dpath="${PP_DPATH}">\r
<EXTRA.INC.1/>\r
<argument value="${PP_FLAGS}"/>\r
<fileset casesensitive="on" file="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"/>\r
\r
<cc userdefine="on">\r
<command type="ASM" cmd="${ASM}" workdir="${DEST_DIR_OUTPUT}" family="${ASM_FAMILY}"\r
- includepathDelimiter="-I" outputDelimiter="-o"\r
+ includepathDelimiter="-I" outputDelimiter="-o" dpath="${ASM_DPATH}"\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj">\r
<EXTRA.INC.1/>\r
<argument value="${ASM_FLAGS}"/>\r
<mkdir dir="${DEST_DIR_OUTPUT}/@{FILEPATH}"/>\r
\r
<cc userdefine="on">\r
- <command type="ASM" includepathDelimiter="-I">\r
+ <command type="ASM" includepathDelimiter="-I" dpath="${ASM_DPATH}">\r
<includepath path="${WORKSPACE_DIR}"/>\r
<includepath path="${MODULE_DIR}"/>\r
<includepath path="${MODULE_DIR}/${ARCH}"/>\r
<sequential>\r
<cc userdefine="on">\r
<command type="SLINK" cmd="${SLINK}" family="${SLINK_FAMILY}"\r
- outputFile="${BIN_DIR}/@{FILENAME}.lib">\r
+ outputFile="${BIN_DIR}/@{FILENAME}.lib" dpath="${SLINK_DPATH}">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
<fileset dir="${DEST_DIR_OUTPUT}" includes="${OBJECTS}"/>\r
\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" family="${CC_FAMILY}"\r
- includepathDelimiter="-I"\r
+ includepathDelimiter="-I" dpath="${CC_DPATH}"\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj">\r
<argument value="${LOCAL_CC_FLAGS}"/>\r
<EXTRA.INC />\r
</targetfiles>\r
\r
<sequential>\r
- <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}" DllPath="${DPATH}">\r
+ <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">\r
<EXTRA.INC/>\r
</vfrcompile>\r
\r
\r
<cc userdefine="on">\r
<command type="CC" cmd="${CC}" workdir="${DEST_DIR_OUTPUT}" \r
- includepathDelimiter="-I" family="${CC_FAMILY}"\r
+ includepathDelimiter="-I" family="${CC_FAMILY}" dpath="${CC_DPATH}"\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" >\r
<argument value="${LOCAL_CC_FLAGS}"/>\r
<EXTRA.INC/>\r
\r
<sequential>\r
<cc userdefine="on">\r
- <command type="SLINK" cmd="${SLINK}" family="${SLINK_FAMILY}"\r
+ <command type="SLINK" cmd="${SLINK}" family="${SLINK_FAMILY}" dpath="${SLINK_DPATH}"\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
</cc>\r
<cc userdefine="on">\r
<command type="DLINK" cmd="${DLINK}" family="${DLINK_FAMILY}"\r
- outputFile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" >\r
+ outputFile="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll" dpath="${DLINK_DPATH}" >\r
<argument value="${DLINK_FLAGS}"/>\r
<libset libs="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib ${LIBS} ${DLINK_SPATH}"/>\r
<LINK.ARG/>\r
import java.io.File;\r
import java.util.Iterator;\r
import java.util.LinkedHashSet;\r
+import java.util.Map;\r
import java.util.Set;\r
import java.util.StringTokenizer;\r
import java.util.Vector;\r
import org.apache.tools.ant.BuildException;\r
import org.apache.tools.ant.DirectoryScanner;\r
import org.apache.tools.ant.Project;\r
+import org.apache.tools.ant.types.Environment;\r
+import org.apache.tools.ant.types.Path;\r
+import org.apache.tools.ant.types.Environment.Variable;\r
\r
/**\r
* \r
String includePathDelimiter = null;\r
\r
String outputDelimiter = null;\r
-\r
+ \r
+ private static String pathName = null;\r
+ \r
public void command(CCTask cctask, UserDefineDef userdefine) {\r
boolean isGccCommand = userdefine.getFamily().equalsIgnoreCase("GCC");\r
File workdir;\r
// if have source file append source file in command line.\r
//\r
Set allSrcFiles = new LinkedHashSet();\r
+\r
for (int i = 0; i < srcSets.size(); i++) {\r
ConditionalFileSet srcSet = (ConditionalFileSet) srcSets\r
.elementAt(i);\r
// Find matching source files\r
//\r
DirectoryScanner scanner = srcSet.getDirectoryScanner(project);\r
- \r
//\r
// Check each source file - see if it needs compilation\r
//\r
for (int j = 0; j < fileNames.length; j++) {\r
cmd[index++] = fileNames[j];\r
}\r
+ \r
+// StringBuffer logLine = new StringBuffer();\r
+// for(int i = 0; i < cmd.length; i++) {\r
+// logLine.append(cmd[i] + " ");\r
+// }\r
+// project.log(logLine.toString(), Project.MSG_VERBOSE);\r
\r
- int retval = runCommand(cctask, workdir, cmd);\r
+ int retval = 0;\r
\r
+ if (userdefine.getDpath() == null || userdefine.getDpath().trim().length() == 0) {\r
+ retval = runCommand(cctask, workdir, cmd, null);\r
+ } else {\r
+ String existPath = System.getenv(getPathName());\r
+ Environment newEnv = new Environment();\r
+ Variable var = new Variable();\r
+ var.setKey(getPathName());\r
+ var.setPath(new Path(project, userdefine.getDpath() + ";" + existPath));\r
+ newEnv.addVariable(var);\r
+ retval = runCommand(cctask, workdir, cmd, newEnv);\r
+ }\r
+ \r
+\r
if (retval != 0) {\r
throw new BuildException(userdefine.getCmd()\r
+ " failed with return code " + retval, cctask\r
.getLocation());\r
}\r
}\r
+ \r
+ private String getPathName() {\r
+ if (pathName != null) {\r
+ return pathName;\r
+ }\r
+ Map allEnv = System.getenv();\r
+ Iterator iter = allEnv.keySet().iterator();\r
+ while (iter.hasNext()) {\r
+ String key = (String)iter.next();\r
+ if(key.equalsIgnoreCase("PATH")) {\r
+ pathName = key;\r
+ break ;\r
+ }\r
+ }\r
+ return pathName;\r
+ }\r
\r
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)\r
+ protected int runCommand(CCTask task, File workingDir, String[] cmdline, Environment env)\r
throws BuildException {\r
- return CUtil.runCommand(task, workingDir, cmdline, false, null);\r
+ //\r
+ // Write command to File\r
+ //\r
+ return CUtil.runCommand(task, workingDir, cmdline, false, env);\r
\r
}\r
}\r