Skip to content

Commit 991e4a5

Browse files
committed
Fixes for Windows issues found in the course of bazel-contrib/rules_jvm_external#1297: 1) Use platform-specific path separators. 2) Add Kotlin standard library jars to the data of tools so that the Windows Java launcher can find them in the runfiles manifest.
1 parent 096170f commit 991e4a5

File tree

4 files changed

+24
-12
lines changed

4 files changed

+24
-12
lines changed

kotlin/internal/toolchains.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def _kotlin_toolchain_impl(ctx):
7474
kotlinbuilder = ctx.attr.kotlinbuilder,
7575
builder_args = [
7676
"--wrapper_script_flag=--main_advice_classpath=%s" % (
77-
":".join([f.path for f in ctx.files.jvm_stdlibs])
77+
ctx.configuration.host_path_separator.join([f.short_path for f in ctx.files.jvm_stdlibs])
7878
),
7979
],
8080
jdeps_merger = ctx.attr.jdeps_merger,

src/main/kotlin/io/bazel/kotlin/builder/cmd/BUILD.bazel

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
load("//src/main/kotlin:bootstrap.bzl", "kt_bootstrap_binary", "kt_bootstrap_library")
22

3+
_KOTLIN_STDLIBS = [
4+
"//kotlin/compiler:annotations",
5+
"//kotlin/compiler:kotlin-stdlib",
6+
"//kotlin/compiler:kotlin-stdlib-jdk7",
7+
"//kotlin/compiler:kotlin-stdlib-jdk8",
8+
"//kotlin/compiler:kotlinx-coroutines-core-jvm",
9+
"//kotlin/compiler:trove4j",
10+
]
11+
312
kt_bootstrap_library(
413
name = "build_lib",
514
srcs = ["Build.kt"],
@@ -28,7 +37,7 @@ kt_bootstrap_binary(
2837
"@kotlinx_serialization_core_jvm//jar",
2938
"@kotlinx_serialization_json//jar",
3039
"@kotlinx_serialization_json_jvm//jar",
31-
],
40+
] + _KOTLIN_STDLIBS,
3241
jvm_flags = [
3342
"-D@com_github_jetbrains_kotlinx...serialization-core-jvm=$(rlocationpath @kotlinx_serialization_core_jvm//jar)",
3443
"-D@com_github_jetbrains_kotlinx...serialization-json=$(rlocationpath @kotlinx_serialization_json//jar)",
@@ -67,7 +76,7 @@ kt_bootstrap_library(
6776

6877
kt_bootstrap_binary(
6978
name = "merge_jdeps",
70-
data = [],
79+
data = _KOTLIN_STDLIBS,
7180
main_class = "io.bazel.kotlin.builder.cmd.MergeJdeps",
7281
shade_rules = "//src/main/kotlin:shade.jarjar",
7382
visibility = ["//src:__subpackages__"],

src/main/starlark/core/compile/cli/BUILD.bazel

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,27 @@ java_import(
1010
deps = [],
1111
)
1212

13+
_KOTLIN_STDLIBS = [
14+
"//kotlin/compiler:annotations",
15+
"//kotlin/compiler:kotlin-stdlib",
16+
"//kotlin/compiler:kotlin-stdlib-jdk7",
17+
"//kotlin/compiler:kotlin-stdlib-jdk8",
18+
"//kotlin/compiler:kotlinx-coroutines-core-jvm",
19+
"//kotlin/compiler:trove4j",
20+
]
21+
1322
java_binary(
1423
name = "kotlinc",
1524
main_class = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler",
1625
runtime_deps = [":kotlinc_jar"],
26+
data = _KOTLIN_STDLIBS,
1727
)
1828

1929
cli_toolchain(
2030
name = "cli_toolchain",
2131
api_version = versions.KOTLIN_CURRENT_COMPILER_RELEASE.version,
2232
jvm_target = "11",
23-
kotlin_stdlibs = [
24-
"//kotlin/compiler:annotations",
25-
"//kotlin/compiler:kotlin-stdlib",
26-
"//kotlin/compiler:kotlin-stdlib-jdk7",
27-
"//kotlin/compiler:kotlin-stdlib-jdk8",
28-
"//kotlin/compiler:kotlinx-coroutines-core-jvm",
29-
"//kotlin/compiler:trove4j",
30-
],
33+
kotlin_stdlibs = _KOTLIN_STDLIBS,
3134
kotlinc = ":kotlinc",
3235
language_version = versions.KOTLIN_CURRENT_COMPILER_RELEASE.version,
3336
zip = "@bazel_tools//tools/zip:zipper",

src/main/starlark/core/compile/cli/compile.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def compile_kotlin_for_jvm(
3131

3232
# Set the stdlib for the compiler to run on.
3333
args = actions.args().add("--wrapper_script_flag=--main_advice_classpath=%s" % (
34-
":".join([f.path for f in toolchain_info.kotlin_stdlib.transitive_compile_time_jars.to_list()])
34+
path_separator.join([f.short_path for f in toolchain_info.kotlin_stdlib.transitive_compile_time_jars.to_list()])
3535
))
3636
args.add("-d", class_jar)
3737
args.add("-jdk-home", toolchain_info.java_runtime.java_home)

0 commit comments

Comments
 (0)