Merge remote-tracking branch 'origin/master'

This commit is contained in:
James Strachan
2012-01-25 10:44:46 +00:00
3 changed files with 30 additions and 25 deletions
@@ -43,7 +43,20 @@ public class KotlinCompiler {
target.println("Usage: KotlinCompiler [-output <outputDir>|-jar <jarFileName>] [-stdlib <path to runtime.jar>] [-src <filename or dirname>|-module <module file>] [-includeRuntime]"); target.println("Usage: KotlinCompiler [-output <outputDir>|-jar <jarFileName>] [-stdlib <path to runtime.jar>] [-src <filename or dirname>|-module <module file>] [-includeRuntime]");
} }
public static void main(String ... args) { public static void main(String... args) {
try {
int rc = exec(args);
if (rc != 0) {
System.err.println("exec() finished with " + rc + " return code");
System.exit(rc);
}
} catch (CompileEnvironmentException e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
public static int exec(String... args) {
System.setProperty("java.awt.headless", "true"); System.setProperty("java.awt.headless", "true");
Arguments arguments = new Arguments(); Arguments arguments = new Arguments();
try { try {
@@ -51,18 +64,16 @@ public class KotlinCompiler {
} }
catch (IllegalArgumentException e) { catch (IllegalArgumentException e) {
usage(System.err); usage(System.err);
System.exit(1); return 1;
return;
} }
catch (Throwable t) { catch (Throwable t) {
t.printStackTrace(); t.printStackTrace();
System.exit(1); return 1;
return;
} }
if (arguments.help) { if (arguments.help) {
usage(System.out); usage(System.out);
System.exit(0); return 0;
} }
CompileEnvironment environment = new CompileEnvironment(); CompileEnvironment environment = new CompileEnvironment();
@@ -71,22 +82,16 @@ public class KotlinCompiler {
environment.setStdlib(arguments.stdlib); environment.setStdlib(arguments.stdlib);
} }
try { if (arguments.module != null) {
if (arguments.module != null) { environment.compileModuleScript(arguments.module, arguments.jar, arguments.includeRuntime);
environment.compileModuleScript(arguments.module, arguments.jar, arguments.includeRuntime); return 0;
return; }
} else {
else { if (!environment.compileBunchOfSources(arguments.src, arguments.jar, arguments.outputDir, arguments.includeRuntime)) {
if (!environment.compileBunchOfSources(arguments.src, arguments.jar, arguments.outputDir, arguments.includeRuntime)) { return 1;
System.exit(1); }
return;
}
}
} catch (CompileEnvironmentException e) {
System.err.println(e.getMessage());
System.exit(1);
return;
} }
}
return 0;
}
} }
@@ -80,7 +80,7 @@ public class ForTestCompileStdlib {
private static void compileKotlinPartOfStdlib(File destdir) throws IOException { private static void compileKotlinPartOfStdlib(File destdir) throws IOException {
// lame // lame
KotlinCompiler.main("-output", destdir.getPath(), "-src", "./stdlib/ktSrc"); KotlinCompiler.exec("-output", destdir.getPath(), "-src", "./stdlib/ktSrc");
} }
private static List<File> javaFilesInDir(File dir) { private static List<File> javaFilesInDir(File dir) {
@@ -38,7 +38,7 @@ public class CompileEnvironmentTest extends TestCase {
try { try {
File stdlib = ForTestCompileStdlib.stdlibJarForTests(); File stdlib = ForTestCompileStdlib.stdlibJarForTests();
File resultJar = new File(tempDir, "result.jar"); File resultJar = new File(tempDir, "result.jar");
KotlinCompiler.main("-module", JetParsingTest.getTestDataDir() + "/compiler/smoke/Smoke.kts", KotlinCompiler.exec("-module", JetParsingTest.getTestDataDir() + "/compiler/smoke/Smoke.kts",
"-jar", resultJar.getAbsolutePath(), "-jar", resultJar.getAbsolutePath(),
"-stdlib", stdlib.getAbsolutePath()); "-stdlib", stdlib.getAbsolutePath());
FileInputStream fileInputStream = new FileInputStream(resultJar); FileInputStream fileInputStream = new FileInputStream(resultJar);
@@ -68,7 +68,7 @@ public class CompileEnvironmentTest extends TestCase {
File out = new File(tempDir, "out"); File out = new File(tempDir, "out");
File stdlib = new File(tempDir, "stdlib.jar"); File stdlib = new File(tempDir, "stdlib.jar");
FileUtil.copy(ForTestCompileStdlib.stdlibJarForTests(), stdlib); FileUtil.copy(ForTestCompileStdlib.stdlibJarForTests(), stdlib);
KotlinCompiler.main("-src", JetParsingTest.getTestDataDir() + "/compiler/smoke/Smoke.kt", KotlinCompiler.exec("-src", JetParsingTest.getTestDataDir() + "/compiler/smoke/Smoke.kt",
"-output", out.getAbsolutePath(), "-output", out.getAbsolutePath(),
"-stdlib", stdlib.getAbsolutePath()); "-stdlib", stdlib.getAbsolutePath());