Skip to content

Commit ec1c0b8

Browse files
committed
Default to the current Java version
This is a workaround for Gradle < 7 not being able to set the vendor requirement, which causes hard to diagnose errors. Fixes #109
1 parent f5148ca commit ec1c0b8

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.graalvm.buildtools.gradle
2+
3+
4+
import org.gradle.testkit.runner.GradleRunner
5+
import spock.lang.Issue
6+
import spock.lang.Specification
7+
import spock.lang.TempDir
8+
9+
import java.nio.file.Path
10+
11+
class NativeImageOptionsTest extends Specification {
12+
@TempDir
13+
Path testDirectory
14+
15+
@Issue("https://github.com/graalvm/native-build-tools/issues/109")
16+
def "toolchain defaults to the current Java version"() {
17+
when:
18+
def runner = GradleRunner.create()
19+
.forwardStdOutput(new PrintWriter(System.out))
20+
.forwardStdError(new PrintWriter(System.err))
21+
.withPluginClasspath()
22+
.withProjectDir(testDirectory.toFile())
23+
24+
25+
def buildFile = testDirectory.resolve("build.gradle")
26+
buildFile.text = """
27+
plugins {
28+
id 'java'
29+
id 'org.graalvm.buildtools.native'
30+
}
31+
32+
assert nativeBuild.javaLauncher
33+
.get()
34+
.metadata
35+
.languageVersion
36+
.toString() == JavaVersion.current().majorVersion
37+
"""
38+
39+
runner.build()
40+
41+
then:
42+
noExceptionThrown()
43+
}
44+
}

native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/dsl/NativeImageOptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
import org.graalvm.buildtools.gradle.internal.GradleUtils;
4545
import org.gradle.api.Action;
46+
import org.gradle.api.JavaVersion;
4647
import org.gradle.api.Project;
4748
import org.gradle.api.file.ConfigurableFileCollection;
4849
import org.gradle.api.model.ObjectFactory;
@@ -212,7 +213,7 @@ public NativeImageOptions(ObjectFactory objectFactory,
212213
getImageName().convention(defaultImageName);
213214
getJavaLauncher().convention(
214215
toolchains.launcherFor(spec -> {
215-
spec.getLanguageVersion().set(JavaLanguageVersion.of(11));
216+
spec.getLanguageVersion().set(JavaLanguageVersion.of(JavaVersion.current().getMajorVersion()));
216217
if (GradleUtils.isAtLeastGradle7()) {
217218
spec.getVendor().set(JvmVendorSpec.matching("GraalVM"));
218219
}

0 commit comments

Comments
 (0)