diff --git a/build.xml b/build.xml index 952ccdd3dba..480951def0d 100644 --- a/build.xml +++ b/build.xml @@ -35,6 +35,7 @@ + diff --git a/compiler/backend/src/org/jetbrains/jet/compiler/CompileEnvironment.java b/compiler/backend/src/org/jetbrains/jet/compiler/CompileEnvironment.java index 277273aa0ee..66c129f3ef9 100644 --- a/compiler/backend/src/org/jetbrains/jet/compiler/CompileEnvironment.java +++ b/compiler/backend/src/org/jetbrains/jet/compiler/CompileEnvironment.java @@ -337,10 +337,12 @@ public class CompileEnvironment { } } - public boolean compileBunchOfSources(String sourceFileOrDir, String jar, String outputDir, boolean includeRuntime) { + public boolean compileBunchOfSources(String sourceFileOrDir, String jar, String outputDir, boolean includeRuntime, boolean includeSources) { CompileSession session = new CompileSession(myEnvironment); session.addSources(sourceFileOrDir); - session.addStdLibSources(false); + if (includeSources) { + session.addStdLibSources(false); + } String mainClass = null; for (JetFile file : session.getSourceFileNamespaces()) { diff --git a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java index e752317b947..8daf27b6cf8 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java @@ -25,6 +25,8 @@ public class KotlinCompiler { public String module; @Argument(value = "includeRuntime", description = "include Kotlin runtime in to resulting jar") public boolean includeRuntime; + @Argument(value = "excludeStdlib", description = "do not load stdlib (to compile stdlib itself)") + public boolean excludeStdlib; } public static void main(String[] args) { @@ -59,7 +61,7 @@ public class KotlinCompiler { return; } else { - if (!environment.compileBunchOfSources(arguments.src, arguments.jar, arguments.outputDir, arguments.includeRuntime)) { + if (!environment.compileBunchOfSources(arguments.src, arguments.jar, arguments.outputDir, arguments.includeRuntime, !arguments.excludeStdlib)) { System.exit(1); return; }