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],