Fix kotlin -classpath argument
kotlinc expects -classpath, not --classpath.
Also add a test that uses only .kt files to exercise the code when
there are no java sources.
Test: java_test.go
Change-Id: Ifa5a007b460b40ea2188d0907570fbdca6c48da7
diff --git a/java/builder.go b/java/builder.go
index deccb05..8b6eb9f 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -203,7 +203,7 @@
Output: outputFile,
Inputs: inputs,
Args: map[string]string{
- "classpath": flags.kotlincClasspath.FormJavaClassPath("--classpath"),
+ "classpath": flags.kotlincClasspath.FormJavaClassPath("-classpath"),
"kotlincFlags": flags.kotlincFlags,
"outDir": classDir.String(),
"javaVersion": flags.javaVersion,
diff --git a/java/java_test.go b/java/java_test.go
index 8ac4b3b..b819447 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -631,6 +631,11 @@
name: "foo",
srcs: ["a.java", "b.kt"],
}
+
+ java_library {
+ name: "bar",
+ srcs: ["b.kt"],
+ }
`)
kotlinc := ctx.ModuleForTests("foo", "android_common").Rule("kotlinc")
@@ -655,6 +660,13 @@
t.Errorf("foo jar inputs %v does not contain %q",
jar.Inputs.Strings(), kotlinc.Output.String())
}
+
+ kotlinc = ctx.ModuleForTests("bar", "android_common").Rule("kotlinc")
+ jar = ctx.ModuleForTests("bar", "android_common").Output("combined/bar.jar")
+
+ if len(kotlinc.Inputs) != 1 || kotlinc.Inputs[0].String() != "b.kt" {
+ t.Errorf(`bar kotlinc inputs %v != ["b.kt"]`, kotlinc.Inputs)
+ }
}
func fail(t *testing.T, errs []error) {