From a0c767a81e0fd80268fbcba72ed5fed67248df18 Mon Sep 17 00:00:00 2001 From: Sam Gammon Date: Thu, 31 Aug 2023 18:10:12 -0700 Subject: [PATCH] fix: modern rule check - fix: explicitly check against modern rule status before resolving toolchain, unconditionally take it if running modern applies on top of sgammon/rules_graalvm#70 Signed-off-by: Sam Gammon --- internal/native_image/rules.bzl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/native_image/rules.bzl b/internal/native_image/rules.bzl index c667cf12..39586010 100644 --- a/internal/native_image/rules.bzl +++ b/internal/native_image/rules.bzl @@ -107,10 +107,15 @@ def _graal_binary_implementation(ctx): direct_inputs = [] transitive_inputs = [classpath_depset] - if graal_attr == None: + # if we aren't handed a specific `native-image` tool binary, or we are running + # under the modern `native_image` rule, then attempt to resolve via toolchains... + if graal_attr == None or not (ctx.attr._legacy_rule): # resolve via toolchains info = ctx.toolchains[_GVM_TOOLCHAIN_TYPE].graalvm - graal_attr = info.native_image_bin + + # but fall back to explicitly-provided tool, which should override, with the + # remainder of the resolved toolchain present + graal_attr = graal_attr or info.native_image_bin gvm_toolchain = info extra_tool_deps.append(info.gvm_files) @@ -263,6 +268,7 @@ def _graal_binary_implementation(ctx): args.add("-H:+JNI") inputs = depset(direct_inputs, transitive = transitive_inputs) + run_params = { "outputs": [binary], "arguments": [args],