This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch danielsun/source_version in repository https://gitbox.apache.org/repos/asf/groovy.git
commit c03d9bd5f6e4ace0bba89afaf365a524782bf959 Author: Daniel Sun <[email protected]> AuthorDate: Sun Jun 2 18:02:26 2024 +0900 Support configuring source java version dynamically --- build-logic/src/main/groovy/org.apache.groovy-base.gradle | 4 ++-- build-logic/src/main/groovy/org.apache.groovy-documented.gradle | 2 +- .../main/groovy/org/apache/groovy/gradle/SharedConfiguration.groovy | 3 +++ build.gradle | 2 +- gradle/idea.gradle | 4 ++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/build-logic/src/main/groovy/org.apache.groovy-base.gradle b/build-logic/src/main/groovy/org.apache.groovy-base.gradle index 99b1334e45..e84e53d8d0 100644 --- a/build-logic/src/main/groovy/org.apache.groovy-base.gradle +++ b/build-logic/src/main/groovy/org.apache.groovy-base.gradle @@ -217,12 +217,12 @@ tasks.register("jarjar", JarJarTask) { } tasks.withType(AbstractCompile).configureEach { - sourceCompatibility(sharedConfiguration.targetJavaVersion.get()) + sourceCompatibility(sharedConfiguration.sourceJavaVersion.get()) targetCompatibility(sharedConfiguration.targetJavaVersion.get()) } tasks.withType(Javadoc).configureEach { - options.source = sharedConfiguration.targetJavaVersion.get() + options.source = sharedConfiguration.sourceJavaVersion.get() } tasks.named("compileTestGroovy") { diff --git a/build-logic/src/main/groovy/org.apache.groovy-documented.gradle b/build-logic/src/main/groovy/org.apache.groovy-documented.gradle index 6be381533c..493627db1a 100644 --- a/build-logic/src/main/groovy/org.apache.groovy-documented.gradle +++ b/build-logic/src/main/groovy/org.apache.groovy-documented.gradle @@ -57,7 +57,7 @@ tasks.withType(Javadoc).configureEach { version = true overview = project.relativePath(rootProject.file('src/main/java/overviewj.html')) bottom = 'Copyright © 2003-2024 The Apache Software Foundation. All rights reserved.' - source = sharedConfiguration.targetJavaVersion.get() + source = sharedConfiguration.sourceJavaVersion.get() links('https://docs.oracle.com/en/java/javase/11/docs/api/', 'https://docs.oracle.com/javaee/7/api/', 'https://commons.apache.org/proper/commons-cli/javadocs/api-release/', diff --git a/build-logic/src/main/groovy/org/apache/groovy/gradle/SharedConfiguration.groovy b/build-logic/src/main/groovy/org/apache/groovy/gradle/SharedConfiguration.groovy index 81e6aca9fc..8ac41d7234 100644 --- a/build-logic/src/main/groovy/org/apache/groovy/gradle/SharedConfiguration.groovy +++ b/build-logic/src/main/groovy/org/apache/groovy/gradle/SharedConfiguration.groovy @@ -24,6 +24,7 @@ import org.gradle.api.execution.TaskExecutionGraph import org.gradle.api.file.Directory import org.gradle.api.file.ProjectLayout import org.gradle.api.file.RegularFile +import org.gradle.api.internal.provider.Providers import org.gradle.api.logging.Logger import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property @@ -43,6 +44,7 @@ class SharedConfiguration { final Provider<String> installationDirectory final Provider<String> binaryCompatibilityBaselineVersion final Provider<Boolean> hasCodeCoverage + final Provider<String> sourceJavaVersion final Provider<String> targetJavaVersion final Provider<String> groovyTargetBytecodeVersion final boolean isRunningOnCI @@ -79,6 +81,7 @@ class SharedConfiguration { providers.provider { startParameter.taskNames.any { it =~ /jacoco/ } } ) .orElse(false) + sourceJavaVersion = Providers.of(System.getProperty("java.specification.version")) targetJavaVersion = providers.gradleProperty("targetJavaVersion") groovyTargetBytecodeVersion = providers.gradleProperty("groovyTargetBytecodeVersion") File javaHome = new File(providers.systemProperty('java.home').get()) diff --git a/build.gradle b/build.gradle index f24ee350b3..59392f1e0b 100644 --- a/build.gradle +++ b/build.gradle @@ -195,7 +195,7 @@ def compileTestExtensionModule = tasks.register("compileTestExtensionModule", Ja classpath = files(tasks.named('jar')) source fileTree(extModuleFixtureDir.dir("src/main/java")) destinationDirectory = extModuleOutputDir.map { it.dir("classes") } - sourceCompatibility = sharedConfiguration.targetJavaVersion.get() + sourceCompatibility = sharedConfiguration.sourceJavaVersion.get() targetCompatibility = sharedConfiguration.targetJavaVersion.get() } diff --git a/gradle/idea.gradle b/gradle/idea.gradle index 159e42e5bd..ebf139ea71 100644 --- a/gradle/idea.gradle +++ b/gradle/idea.gradle @@ -50,8 +50,8 @@ if (gradle.startParameter.taskNames.any { it =~ /(?i)idea/ }) { // jdk, language level fix def pRoot = node.component.find { it.'@name' == 'ProjectRootManager' } - pRoot.'@languageLevel' = 'JDK_' + sharedConfiguration.targetJavaVersion.get() - pRoot.'@project-jdk-name' = sharedConfiguration.targetJavaVersion.get() + pRoot.'@languageLevel' = 'JDK_' + sharedConfiguration.sourceJavaVersion.get() + pRoot.'@project-jdk-name' = sharedConfiguration.sourceJavaVersion.get() // Use git def vcsConfig = node.component.find { it.'@name' == 'VcsDirectoryMappings' }
