diff --git a/common-deps/src/main/kotlin/com/google/devtools/ksp/KSPConfig.kt b/common-deps/src/main/kotlin/com/google/devtools/ksp/KSPConfig.kt index dee5e69efd..bd15143b22 100644 --- a/common-deps/src/main/kotlin/com/google/devtools/ksp/KSPConfig.kt +++ b/common-deps/src/main/kotlin/com/google/devtools/ksp/KSPConfig.kt @@ -474,13 +474,13 @@ fun parseFile(arg: String): File { fun parseList(arg: String, transform: (String) -> T): List { if (arg.length > 0 && arg[0] == '-') throw IllegalArgumentException("expecting a List but got $arg") - return arg.split(':').map { transform(it) } + return arg.split(File.pathSeparatorChar).map { transform(it) } } fun parseMap(arg: String, transform: (String) -> T): Map { if (arg.length > 0 && arg[0] == '-') throw IllegalArgumentException("expecting a Map but got $arg") - return arg.split(':').map { + return arg.split(File.pathSeparatorChar).map { val (k, v) = it.split('=') k to transform(v) }.toMap() diff --git a/common-deps/src/test/kotlin/com/google/devtools/ksp/CommandLineArgParserTest.kt b/common-deps/src/test/kotlin/com/google/devtools/ksp/CommandLineArgParserTest.kt index 0b160eec66..4aa2cf5ef8 100644 --- a/common-deps/src/test/kotlin/com/google/devtools/ksp/CommandLineArgParserTest.kt +++ b/common-deps/src/test/kotlin/com/google/devtools/ksp/CommandLineArgParserTest.kt @@ -9,9 +9,10 @@ import java.io.File class CommandLineArgParserTest { @Test fun testJvm() { + val sep = File.pathSeparator val args = arrayListOf( "-module-name=MyModule", - "-source-roots", "/path/to/A:/path/to/B", + "-source-roots", "/path/to/A$sep/path/to/B", "/path/to/processorA.jar", "-kotlin-output-dir=/path/to/output/kotlin", "-java-output-dir=/path/to/output/java", @@ -23,7 +24,7 @@ class CommandLineArgParserTest { "-project-base-dir", "/path/to/base", "-output-base-dir", "/path/to/output", "-caches-dir", "/path/to/caches", - "/path/to/processorB.jar:rel/to/processorC.jar", + "/path/to/processorB.jar${sep}rel/to/processorC.jar", ).toTypedArray() val (config, classpath) = kspJvmArgParser(args) Assert.assertEquals( diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/cmdline/KSPJvmMain.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/cmdline/KSPJvmMain.kt index 595af17731..a3672f79bd 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/cmdline/KSPJvmMain.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/cmdline/KSPJvmMain.kt @@ -28,8 +28,8 @@ internal fun printHelpMsg(optionsList: String) { println(optionsList) println("where:") println(" * is required") - println(" List is colon separated. E.g., arg1:arg2:arg3") - println(" Map is in the form key1=value1:key2=value2") + println(" List is separated. E.g., arg1:arg2:arg3 on Linux/Mac, or arg1;arg2;arg3 on Windows") + println(" Map is in the form key1=value1:key2=value2 on Linux/Mac or key1=value1;key2=value2 on Windows") } internal fun runWithArgs(args: Array, parse: (Array) -> Pair>) {