FileDocCategorySizeDatePackage
Jvc.javaAPI DocApache Ant 1.703819Wed Dec 13 06:16:18 GMT 2006org.apache.tools.ant.taskdefs.compilers

Jvc

public class Jvc extends DefaultCompilerAdapter
The implementation of the jvc compiler from microsoft. This is primarily a cut-and-paste from the original javac task before it was refactored.
since
Ant 1.3

Fields Summary
Constructors Summary
Methods Summary
public booleanexecute()
Run the compilation.

return
true if the compiler ran with a zero exit result (ok)
exception
BuildException if the compilation has problems.

        attributes.log("Using jvc compiler", Project.MSG_VERBOSE);

        Path classpath = new Path(project);

        // jvc doesn't support bootclasspath dir (-bootclasspath)
        // so we'll emulate it for compatibility and convenience.
        Path p = getBootClassPath();
        if (p.size() > 0) {
            classpath.append(p);
        }

        if (includeJavaRuntime) {
            // jvc doesn't support an extension dir (-extdir)
            // so we'll emulate it for compatibility and convenience.
            classpath.addExtdirs(extdirs);
        }

        classpath.append(getCompileClasspath());

        // jvc has no option for source-path so we
        // will add it to classpath.
        if (compileSourcepath != null) {
            classpath.append(compileSourcepath);
        } else {
            classpath.append(src);
        }

        Commandline cmd = new Commandline();
        String exec = getJavac().getExecutable();
        cmd.setExecutable(exec == null ? "jvc" : exec);

        if (destDir != null) {
            cmd.createArgument().setValue("/d");
            cmd.createArgument().setFile(destDir);
        }

        // Add the Classpath before the "internal" one.
        cmd.createArgument().setValue("/cp:p");
        cmd.createArgument().setPath(classpath);

        boolean msExtensions = true;
        String mse = getProject().getProperty("build.compiler.jvc.extensions");
        if (mse != null) {
            msExtensions = Project.toBoolean(mse);
        }

        if (msExtensions) {
            // Enable MS-Extensions and ...
            cmd.createArgument().setValue("/x-");
            // ... do not display a Message about this.
            cmd.createArgument().setValue("/nomessage");
        }

        // Do not display Logo
        cmd.createArgument().setValue("/nologo");

        if (debug) {
            cmd.createArgument().setValue("/g");
        }
        if (optimize) {
            cmd.createArgument().setValue("/O");
        }
        if (verbose) {
            cmd.createArgument().setValue("/verbose");
        }

        addCurrentCompilerArgs(cmd);

        int firstFileName = cmd.size();
        logAndAddFilesToCompile(cmd);

        return
            executeExternalCompile(cmd.getCommandline(), firstFileName) == 0;