Skip to content

Commit 4e3b18e

Browse files
authored
Fixes for Windows issues found in the course of updating rules_jvm_external to use Starlark Android rules (#1274)
* 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. * Test using path instead of short_path * Run buildifier * Consolidate KOTLIN_STDLIBS to //kotlin/compiler:compiler.bzl
1 parent f33145f commit 4e3b18e

File tree

5 files changed

+17
-12
lines changed

5 files changed

+17
-12
lines changed

kotlin/compiler/compiler.bzl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ load("@com_github_jetbrains_kotlin//:artifacts.bzl", "KOTLINC_ARTIFACTS")
1616
load("//kotlin:jvm.bzl", "kt_jvm_import")
1717
load("//kotlin/internal:defs.bzl", _KT_COMPILER_REPO = "KT_COMPILER_REPO")
1818

19+
KOTLIN_STDLIBS = [
20+
"//kotlin/compiler:annotations",
21+
"//kotlin/compiler:kotlin-stdlib",
22+
"//kotlin/compiler:kotlin-stdlib-jdk7",
23+
"//kotlin/compiler:kotlin-stdlib-jdk8",
24+
"//kotlin/compiler:kotlinx-coroutines-core-jvm",
25+
"//kotlin/compiler:trove4j",
26+
]
27+
1928
def _import_artifacts(artifacts, rule_kind):
2029
_import_labels(artifacts.plugin, rule_kind)
2130
_import_labels(artifacts.runtime, rule_kind)

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.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: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
load("//kotlin/compiler:compiler.bzl", _KOTLIN_STDLIBS = "KOTLIN_STDLIBS")
12
load("//src/main/kotlin:bootstrap.bzl", "kt_bootstrap_binary", "kt_bootstrap_library")
23

34
kt_bootstrap_library(
@@ -28,7 +29,7 @@ kt_bootstrap_binary(
2829
"@kotlinx_serialization_core_jvm//jar",
2930
"@kotlinx_serialization_json//jar",
3031
"@kotlinx_serialization_json_jvm//jar",
31-
],
32+
] + _KOTLIN_STDLIBS,
3233
jvm_flags = [
3334
"-D@com_github_jetbrains_kotlinx...serialization-core-jvm=$(rlocationpath @kotlinx_serialization_core_jvm//jar)",
3435
"-D@com_github_jetbrains_kotlinx...serialization-json=$(rlocationpath @kotlinx_serialization_json//jar)",
@@ -67,7 +68,7 @@ kt_bootstrap_library(
6768

6869
kt_bootstrap_binary(
6970
name = "merge_jdeps",
70-
data = [],
71+
data = _KOTLIN_STDLIBS,
7172
main_class = "io.bazel.kotlin.builder.cmd.MergeJdeps",
7273
shade_rules = "//src/main/kotlin:shade.jarjar",
7374
visibility = ["//src:__subpackages__"],

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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
load("//kotlin/compiler:compiler.bzl", _KOTLIN_STDLIBS = "KOTLIN_STDLIBS")
12
load("//src/main/starlark/core/compile:common.bzl", "TYPE")
23
load("//src/main/starlark/core/repositories:versions.bzl", "versions")
34
load(":toolchain.bzl", "cli_toolchain")
@@ -12,6 +13,7 @@ java_import(
1213

1314
java_binary(
1415
name = "kotlinc",
16+
data = _KOTLIN_STDLIBS,
1517
main_class = "org.jetbrains.kotlin.cli.jvm.K2JVMCompiler",
1618
runtime_deps = [":kotlinc_jar"],
1719
)
@@ -20,14 +22,7 @@ cli_toolchain(
2022
name = "cli_toolchain",
2123
api_version = versions.KOTLIN_CURRENT_COMPILER_RELEASE.version,
2224
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-
],
25+
kotlin_stdlibs = _KOTLIN_STDLIBS,
3126
kotlinc = ":kotlinc",
3227
language_version = versions.KOTLIN_CURRENT_COMPILER_RELEASE.version,
3328
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.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)