From 1c66154238c64567ccde2c47e6522c4bf7666b67 Mon Sep 17 00:00:00 2001 From: Konrad Malawski Date: Tue, 24 Mar 2026 17:21:57 +0900 Subject: [PATCH] jextract plugin: prefer gradlew over global gradle This should help avoid version mismatches --- .../JExtractSwiftPlugin/JExtractSwiftPlugin.swift | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift b/Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift index e370bc76f..2829cf7fd 100644 --- a/Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift +++ b/Plugins/JExtractSwiftPlugin/JExtractSwiftPlugin.swift @@ -187,10 +187,14 @@ struct JExtractSwiftBuildToolPlugin: SwiftJavaPluginProtocol, BuildToolPlugin { gradlewEnvironment[GradleUserHome] = gradleUserHomePath log("Forward environment: \(gradlewEnvironment)") - let gradleExecutable = - findExecutable(name: "gradle") // try using installed 'gradle' if available in PATH - ?? swiftJavaDirectory.appending(path: "gradlew") // fallback to calling ./gradlew if gradle is not installed - log("Detected 'gradle' executable (or gradlew fallback): \(gradleExecutable)") + let gradlewURL = swiftJavaDirectory.appending(path: "gradlew") + let gradleExecutable: URL + if FileManager.default.isExecutableFile(atPath: gradlewURL.path(percentEncoded: false)) { + gradleExecutable = gradlewURL // prefer the wrapper to ensure the correct Gradle version is used + } else { + gradleExecutable = findExecutable(name: "gradle") ?? gradlewURL // fallback to system gradle + } + log("Detected gradle executable: \(gradleExecutable)") let javaHome = URL(filePath: findJavaHome()) let javacPath =