aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java
new file mode 100644
index 00000000..68b5ba18
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/compilers/Kjc.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.taskdefs.compilers;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.ExecuteJava;
+import org.apache.tools.ant.types.Commandline;
+import org.apache.tools.ant.types.Path;
+
+/**
+ * The implementation of the Java compiler for KJC.
+ * This is primarily a cut-and-paste from Jikes.java and
+ * DefaultCompilerAdapter.
+ *
+ * @since Ant 1.4
+ */
+public class Kjc extends DefaultCompilerAdapter {
+
+ /**
+ * Run the compilation.
+ * @return true if the compilation succeeded
+ * @exception BuildException if the compilation has problems.
+ */
+ public boolean execute() throws BuildException {
+ attributes.log("Using kjc compiler", Project.MSG_VERBOSE);
+ Commandline cmd = setupKjcCommand();
+ cmd.setExecutable("at.dms.kjc.Main");
+ ExecuteJava ej = new ExecuteJava();
+ ej.setJavaCommand(cmd);
+ return ej.fork(getJavac()) == 0;
+ }
+
+ /**
+ * setup kjc command arguments.
+ * @return the command line
+ */
+ protected Commandline setupKjcCommand() {
+ Commandline cmd = new Commandline();
+
+ // generate classpath, because kjc doesn't support sourcepath.
+ Path classpath = getCompileClasspath();
+
+ if (deprecation) {
+ cmd.createArgument().setValue("-deprecation");
+ }
+
+ if (destDir != null) {
+ cmd.createArgument().setValue("-d");
+ cmd.createArgument().setFile(destDir);
+ }
+
+ // generate the clsspath
+ cmd.createArgument().setValue("-classpath");
+
+ Path cp = new Path(project);
+
+ // kjc don't have bootclasspath option.
+ Path p = getBootClassPath();
+ if (p.size() > 0) {
+ cp.append(p);
+ }
+
+ if (extdirs != null) {
+ cp.addExtdirs(extdirs);
+ }
+
+ cp.append(classpath);
+ if (compileSourcepath != null) {
+ cp.append(compileSourcepath);
+ } else {
+ cp.append(src);
+ }
+
+ cmd.createArgument().setPath(cp);
+
+ // kjc-1.5A doesn't support -encoding option now.
+ // but it will be supported near the feature.
+ if (encoding != null) {
+ cmd.createArgument().setValue("-encoding");
+ cmd.createArgument().setValue(encoding);
+ }
+
+ if (debug) {
+ cmd.createArgument().setValue("-g");
+ }
+
+ if (optimize) {
+ cmd.createArgument().setValue("-O2");
+ }
+
+ if (verbose) {
+ cmd.createArgument().setValue("-verbose");
+ }
+
+ addCurrentCompilerArgs(cmd);
+
+ logAndAddFilesToCompile(cmd);
+ return cmd;
+ }
+}
+
+