Fix BuckPrologCompiler to create Java 6 class files

Gerrit targets Java 6, not Java 7. If Buck is run under JDK 7
the javac compiler by default will assume -source 7 -target 7
and write incompatible class files.

Ensure the compiler builds for Java 6 language features and
Java 6 class format by passing the correct flags.

Change-Id: Ib2c013a6d1955d94b75cfd5d967d2f45ef4d5486
This commit is contained in:
Shawn Pearce
2013-05-16 15:35:31 -07:00
parent fec1537a56
commit daa1977489

View File

@@ -12,11 +12,15 @@
// See the License for the specific language governing permissions and
// limitations under the License.
import com.googlecode.prolog_cafe.compiler.CompileException;
import com.googlecode.prolog_cafe.compiler.Compiler;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.jar.JarEntry;
@@ -29,9 +33,6 @@ import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import com.googlecode.prolog_cafe.compiler.CompileException;
import com.googlecode.prolog_cafe.compiler.Compiler;
public class BuckPrologCompiler {
public static void main(String[] argv) throws IOException, CompileException {
List<File> srcs = new ArrayList<File>();
@@ -82,14 +83,16 @@ public class BuckPrologCompiler {
classpath.append(jar.getPath());
}
ArrayList<String> args = new ArrayList<String>();
args.add("-g:none");
args.add("-nowarn");
args.addAll(Arrays.asList(new String[]{
"-source", "6",
"-target", "6",
"-g:none",
"-nowarn",
"-d", classes.getPath()}));
if (classpath.length() > 0) {
args.add("-classpath");
args.add(classpath.toString());
}
args.add("-d");
args.add(classes.getPath());
if (!javac.getTask(null, fm, d, args, null,
fm.getJavaFileObjectsFromFiles(find(java, ".java"))).call()) {
StringBuilder msg = new StringBuilder();