From 60090a25ed86271f7e123964ffeaf9f718f4cdf3 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Tue, 20 Dec 2022 15:31:39 +0100 Subject: [PATCH 1/4] Convert strings to label with the correct repository. --- kotlin/internal/toolchains.bzl | 35 ++++++++++--------- src/main/starlark/core/repositories/BUILD | 1 - src/main/starlark/core/repositories/tools.bzl | 17 --------- 3 files changed, 19 insertions(+), 34 deletions(-) delete mode 100644 src/main/starlark/core/repositories/tools.bzl diff --git a/kotlin/internal/toolchains.bzl b/kotlin/internal/toolchains.bzl index 23aa0681c..aebc20ae9 100644 --- a/kotlin/internal/toolchains.bzl +++ b/kotlin/internal/toolchains.bzl @@ -24,10 +24,6 @@ load( _KtJsInfo = "KtJsInfo", _TOOLCHAIN_TYPE = "TOOLCHAIN_TYPE", ) -load( - "//src/main/starlark/core/repositories:tools.bzl", - "absolute_target", -) """Kotlin Toolchains @@ -264,9 +260,24 @@ _kt_toolchain = rule( provides = [platform_common.ToolchainInfo], ) +_KT_DEFAULT_TOOLCHAIN = Label("//kotlin/internal:default_toolchain") + def kt_register_toolchains(): """This macro registers the kotlin toolchain.""" - native.register_toolchains(absolute_target("//kotlin/internal:default_toolchain")) + native.register_toolchains(_KT_DEFAULT_TOOLCHAIN) + +# Evaluating the select in the context of bzl file to get its repository +_DEBUG_SELECT = select({ + "//kotlin/internal:builder_debug_trace": ["trace"], + "//conditions:default": [], +}) + select({ + "//kotlin/internal:builder_debug_timings": ["timings"], + "//conditions:default": [], +}) + +# Evaluating the labels in the context of bzl file to get its repository +_EXPERIMENTAL_USE_ABI_JARS = Label("//kotlin/internal:experimental_use_abi_jars") +_NOEXPERIMENTAL_USE_ABI_JARS = Label("//kotlin/internal:noexperimental_use_abi_jars") def define_kt_toolchain( name, @@ -289,18 +300,10 @@ def define_kt_toolchain( language_version = language_version, api_version = api_version, jvm_target = jvm_target, - debug = - select({ - absolute_target("//kotlin/internal:builder_debug_trace"): ["trace"], - "//conditions:default": [], - }) + - select({ - absolute_target("//kotlin/internal:builder_debug_timings"): ["timings"], - "//conditions:default": [], - }), + debug = _DEBUG_SELECT, experimental_use_abi_jars = select({ - absolute_target("//kotlin/internal:experimental_use_abi_jars"): True, - absolute_target("//kotlin/internal:noexperimental_use_abi_jars"): False, + _EXPERIMENTAL_USE_ABI_JARS: True, + _NOEXPERIMENTAL_USE_ABI_JARS: False, "//conditions:default": experimental_use_abi_jars, }), experimental_multiplex_workers = experimental_multiplex_workers, diff --git a/src/main/starlark/core/repositories/BUILD b/src/main/starlark/core/repositories/BUILD index 5b824c20e..23cd70426 100644 --- a/src/main/starlark/core/repositories/BUILD +++ b/src/main/starlark/core/repositories/BUILD @@ -20,7 +20,6 @@ release_archive( "BUILD.com_github_jetbrains_kotlin.bazel", "compiler.bzl", "configured_rules.bzl", - "tools.bzl", "versions.bzl", ], src_map = { diff --git a/src/main/starlark/core/repositories/tools.bzl b/src/main/starlark/core/repositories/tools.bzl deleted file mode 100644 index 7500a6db2..000000000 --- a/src/main/starlark/core/repositories/tools.bzl +++ /dev/null @@ -1,17 +0,0 @@ -"""tools for managing repositories.""" - -def absolute_target(repo_relative_target): - """Converts a relative path inside a repository to a fully qualified name. - - This uses builtin Label to translate relative paths to repository qualified targets of the defining bzl file. - - For instance, absolute_target is defined in repository "zumgali". Calling absolute_target("//gali/gali:zum") returns - "@zumgali//gali/gali:zum" - - Args: - repo_relative_target: relative target expression - Returns: - Fully qualified repository string. - """ - label = Label(repo_relative_target) - return "@%s//%s:%s" % (label.workspace_name, label.package, label.name) From f03c1f178c73a644e2be00f9677f96dd2fc7f1e6 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Tue, 20 Dec 2022 16:53:41 +0100 Subject: [PATCH 2/4] Convert label to string before passing to register_toolchains --- kotlin/internal/toolchains.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kotlin/internal/toolchains.bzl b/kotlin/internal/toolchains.bzl index aebc20ae9..0ff1ef5ff 100644 --- a/kotlin/internal/toolchains.bzl +++ b/kotlin/internal/toolchains.bzl @@ -264,7 +264,7 @@ _KT_DEFAULT_TOOLCHAIN = Label("//kotlin/internal:default_toolchain") def kt_register_toolchains(): """This macro registers the kotlin toolchain.""" - native.register_toolchains(_KT_DEFAULT_TOOLCHAIN) + native.register_toolchains(str(_KT_DEFAULT_TOOLCHAIN)) # Evaluating the select in the context of bzl file to get its repository _DEBUG_SELECT = select({ From 70d4f6f6e5685dc542779a8349b1508ba6045bb2 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Tue, 20 Dec 2022 17:31:52 +0100 Subject: [PATCH 3/4] Add labels to select --- kotlin/internal/toolchains.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kotlin/internal/toolchains.bzl b/kotlin/internal/toolchains.bzl index 0ff1ef5ff..1aee147fb 100644 --- a/kotlin/internal/toolchains.bzl +++ b/kotlin/internal/toolchains.bzl @@ -268,10 +268,10 @@ def kt_register_toolchains(): # Evaluating the select in the context of bzl file to get its repository _DEBUG_SELECT = select({ - "//kotlin/internal:builder_debug_trace": ["trace"], + Label("//kotlin/internal:builder_debug_trace"): ["trace"], "//conditions:default": [], }) + select({ - "//kotlin/internal:builder_debug_timings": ["timings"], + Label("//kotlin/internal:builder_debug_timings"): ["timings"], "//conditions:default": [], }) From 0fec342ab9a4b52ddb6cb2c3e8b4c753e9edf1b3 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Thu, 22 Dec 2022 16:09:58 +0100 Subject: [PATCH 4/4] Stringify Labels to support older bazels --- kotlin/internal/toolchains.bzl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kotlin/internal/toolchains.bzl b/kotlin/internal/toolchains.bzl index 1aee147fb..df6cf41ff 100644 --- a/kotlin/internal/toolchains.bzl +++ b/kotlin/internal/toolchains.bzl @@ -268,16 +268,16 @@ def kt_register_toolchains(): # Evaluating the select in the context of bzl file to get its repository _DEBUG_SELECT = select({ - Label("//kotlin/internal:builder_debug_trace"): ["trace"], + str(Label("//kotlin/internal:builder_debug_trace")): ["trace"], "//conditions:default": [], }) + select({ - Label("//kotlin/internal:builder_debug_timings"): ["timings"], + str(Label("//kotlin/internal:builder_debug_timings")): ["timings"], "//conditions:default": [], }) # Evaluating the labels in the context of bzl file to get its repository -_EXPERIMENTAL_USE_ABI_JARS = Label("//kotlin/internal:experimental_use_abi_jars") -_NOEXPERIMENTAL_USE_ABI_JARS = Label("//kotlin/internal:noexperimental_use_abi_jars") +_EXPERIMENTAL_USE_ABI_JARS = str(Label("//kotlin/internal:experimental_use_abi_jars")) +_NOEXPERIMENTAL_USE_ABI_JARS = str(Label("//kotlin/internal:noexperimental_use_abi_jars")) def define_kt_toolchain( name,