From 8d2fafa3ce35b06b2dc223a4e61072545484cad7 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 11 Aug 2021 22:23:12 +0300 Subject: [PATCH] Build: Fix various warnings in build files Required for Gradle 7+ #KTI-559 --- build.gradle.kts | 12 ++++++------ buildSrc/src/main/kotlin/CommonUtil.kt | 8 ++++---- buildSrc/src/main/kotlin/InstrumentJava.kt | 2 +- buildSrc/src/main/kotlin/LibrariesCommon.kt | 2 +- buildSrc/src/main/kotlin/SmartJavaExec.kt | 4 ++-- buildSrc/src/main/kotlin/artifacts.kt | 8 ++++---- buildSrc/src/main/kotlin/copyright.kt | 2 +- buildSrc/src/main/kotlin/sourceSets.kt | 12 ++++++------ kotlin-native/backend.native/build.gradle | 1 + 9 files changed, 26 insertions(+), 25 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 25cb9249c35..aa9ae5fa553 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -562,15 +562,15 @@ allprojects { println("${project.path} $role classpath:\n ${joinToString("\n ") { it.toProjectRootRelativePathOrSelf() }}") try { - javaPluginConvention() + javaPluginExtension() } catch (_: UnknownDomainObjectException) { null - }?.let { javaConvention -> + }?.let { javaExtension -> tasks { - register("printCompileClasspath") { doFirst { javaConvention.sourceSets["main"].compileClasspath.printClassPath("compile") } } - register("printRuntimeClasspath") { doFirst { javaConvention.sourceSets["main"].runtimeClasspath.printClassPath("runtime") } } - register("printTestCompileClasspath") { doFirst { javaConvention.sourceSets["test"].compileClasspath.printClassPath("test compile") } } - register("printTestRuntimeClasspath") { doFirst { javaConvention.sourceSets["test"].runtimeClasspath.printClassPath("test runtime") } } + register("printCompileClasspath") { doFirst { javaExtension.sourceSets["main"].compileClasspath.printClassPath("compile") } } + register("printRuntimeClasspath") { doFirst { javaExtension.sourceSets["main"].runtimeClasspath.printClassPath("runtime") } } + register("printTestCompileClasspath") { doFirst { javaExtension.sourceSets["test"].compileClasspath.printClassPath("test compile") } } + register("printTestRuntimeClasspath") { doFirst { javaExtension.sourceSets["test"].runtimeClasspath.printClassPath("test runtime") } } } } diff --git a/buildSrc/src/main/kotlin/CommonUtil.kt b/buildSrc/src/main/kotlin/CommonUtil.kt index e81059eef00..2af841e5860 100644 --- a/buildSrc/src/main/kotlin/CommonUtil.kt +++ b/buildSrc/src/main/kotlin/CommonUtil.kt @@ -6,7 +6,7 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.file.CopySourceSpec import org.gradle.api.file.SourceDirectorySet -import org.gradle.api.plugins.JavaPluginConvention +import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.tasks.JavaExec import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetOutput @@ -70,9 +70,9 @@ fun Project.getBooleanProperty(name: String): Boolean? = this.findProperty(name) inline fun CopySourceSpec.from(crossinline filesProvider: () -> Any?): CopySourceSpec = from(Callable { filesProvider() }) -fun Project.javaPluginConvention(): JavaPluginConvention = the() +fun Project.javaPluginExtension(): JavaPluginExtension = extensions.getByType() -fun Project.findJavaPluginConvention(): JavaPluginConvention? = convention.findByType() ?: convention.findPlugin() +fun Project.findJavaPluginExtension(): JavaPluginExtension? = extensions.findByType() fun JavaExec.pathRelativeToWorkingDir(file: File): String = file.relativeTo(workingDir).invariantSeparatorsPath @@ -83,7 +83,7 @@ fun Task.singleOutputFile(): File = when (this) { } val Project.isConfigurationCacheDisabled - get() = (gradle.startParameter as? org.gradle.api.internal.StartParameterInternal)?.isConfigurationCache != true + get() = (gradle.startParameter as? org.gradle.api.internal.StartParameterInternal)?.configurationCache?.get() != true val Project.isIdeaActive get() = providers.systemProperty("idea.active").forUseAtConfigurationTime().isPresent diff --git a/buildSrc/src/main/kotlin/InstrumentJava.kt b/buildSrc/src/main/kotlin/InstrumentJava.kt index 5bd0fc3f902..28177b363b8 100644 --- a/buildSrc/src/main/kotlin/InstrumentJava.kt +++ b/buildSrc/src/main/kotlin/InstrumentJava.kt @@ -39,7 +39,7 @@ class InstrumentJava(@Transient val javaInstrumentator: Configuration, @Transien javaSourceDirectories.forEach { directory -> "instrumentIdeaExtensions"( "srcdir" to directory, - "destdir" to task.destinationDir, + "destdir" to task.destinationDirectory.asFile.get(), "classpath" to task.classpath.asPath, "includeantruntime" to false, "instrumentNotNull" to true diff --git a/buildSrc/src/main/kotlin/LibrariesCommon.kt b/buildSrc/src/main/kotlin/LibrariesCommon.kt index 011f629af9a..4e830dcc733 100644 --- a/buildSrc/src/main/kotlin/LibrariesCommon.kt +++ b/buildSrc/src/main/kotlin/LibrariesCommon.kt @@ -34,7 +34,7 @@ fun Project.configureJava9Compilation( // module-info.java should be in java9 source set by convention val java9SourceSet = sourceSets["java9"].java - destinationDir = file("${java9SourceSet.outputDir}/META-INF/versions/9") + destinationDirectory.set(java9SourceSet.destinationDirectory.asFile.get().resolve("META-INF/versions/9")) options.sourcepath = files(java9SourceSet.srcDirs) val compileClasspath = configurations["java9CompileClasspath"] val moduleFiles = objects.fileCollection().from(moduleOutputs) diff --git a/buildSrc/src/main/kotlin/SmartJavaExec.kt b/buildSrc/src/main/kotlin/SmartJavaExec.kt index 65ec3c5ecfb..b91be3d349a 100644 --- a/buildSrc/src/main/kotlin/SmartJavaExec.kt +++ b/buildSrc/src/main/kotlin/SmartJavaExec.kt @@ -19,7 +19,7 @@ fun Project.smartJavaExec(configure: JavaExec.() -> Unit) = tasks.creating(JavaE fun JavaExec.passClasspathInJar() { val jarTask = project.task("${name}WriteClassPath", Jar::class) { val classpath = classpath - val main = main + val main = mainClass.get() dependsOn(classpath) inputs.files(classpath) inputs.property("main", main) @@ -42,7 +42,7 @@ fun JavaExec.passClasspathInJar() { dependsOn(jarTask) - main = "-jar" + mainClass.set("-jar") classpath = project.files() args = listOf(jarTask.outputs.files.singleFile.path) + args.orEmpty() } diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 755ab23233e..1131bda97c8 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -13,7 +13,7 @@ import org.gradle.api.attributes.LibraryElements import org.gradle.api.attributes.Usage import org.gradle.api.component.AdhocComponentWithVariants import org.gradle.api.file.DuplicatesStrategy -import org.gradle.api.plugins.BasePluginConvention +import org.gradle.api.plugins.BasePluginExtension import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.JavaPlugin.* import org.gradle.api.plugins.JavaPluginExtension @@ -76,7 +76,7 @@ fun Project.runtimeJar(body: Jar.() -> Unit = {}): TaskProvider { embedded.map(::zipTree) } } - setupPublicJar(project.the().archivesBaseName) + setupPublicJar(project.extensions.getByType().archivesName.get()) duplicatesStrategy = DuplicatesStrategy.EXCLUDE body() } @@ -90,7 +90,7 @@ fun Project.runtimeJar(task: TaskProvider, body: ShadowJar.() -> Unit task.configure { configurations = configurations + listOf(project.configurations["embedded"]) - setupPublicJar(project.the().archivesBaseName) + setupPublicJar(project.extensions.getByType().archivesName.get()) duplicatesStrategy = DuplicatesStrategy.EXCLUDE body() } @@ -108,7 +108,7 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider { } val sourcesJar = getOrCreateTask("sourcesJar") { - fun Project.mainJavaPluginSourceSet() = findJavaPluginConvention()?.sourceSets?.findByName("main") + fun Project.mainJavaPluginSourceSet() = findJavaPluginExtension()?.sourceSets?.findByName("main") fun Project.mainKotlinSourceSet() = (extensions.findByName("kotlin") as? KotlinSourceSetContainer)?.sourceSets?.findByName("main") diff --git a/buildSrc/src/main/kotlin/copyright.kt b/buildSrc/src/main/kotlin/copyright.kt index 591ed38845c..576cefe87a8 100644 --- a/buildSrc/src/main/kotlin/copyright.kt +++ b/buildSrc/src/main/kotlin/copyright.kt @@ -6,7 +6,7 @@ package tasks import groovy.util.Node -import groovy.util.XmlParser +import groovy.xml.XmlParser import org.gradle.api.DefaultTask import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property diff --git a/buildSrc/src/main/kotlin/sourceSets.kt b/buildSrc/src/main/kotlin/sourceSets.kt index 9991bbe3035..af3e8e82d8a 100644 --- a/buildSrc/src/main/kotlin/sourceSets.kt +++ b/buildSrc/src/main/kotlin/sourceSets.kt @@ -1,5 +1,5 @@ import org.gradle.api.Project -import org.gradle.api.plugins.JavaPluginConvention +import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer @@ -36,16 +36,16 @@ val SourceSet.projectDefault: Project.() -> Unit } val Project.sourceSets: SourceSetContainer - get() = javaPluginConvention().sourceSets + get() = javaPluginExtension().sourceSets val Project.mainSourceSet: SourceSet - get() = javaPluginConvention().mainSourceSet + get() = javaPluginExtension().mainSourceSet val Project.testSourceSet: SourceSet - get() = javaPluginConvention().testSourceSet + get() = javaPluginExtension().testSourceSet -val JavaPluginConvention.mainSourceSet: SourceSet +val JavaPluginExtension.mainSourceSet: SourceSet get() = sourceSets.getByName("main") -val JavaPluginConvention.testSourceSet: SourceSet +val JavaPluginExtension.testSourceSet: SourceSet get() = sourceSets.getByName("test") diff --git a/kotlin-native/backend.native/build.gradle b/kotlin-native/backend.native/build.gradle index b3b7ecb4718..3c08c3c3b68 100644 --- a/kotlin-native/backend.native/build.gradle +++ b/kotlin-native/backend.native/build.gradle @@ -238,6 +238,7 @@ task trove4jCopy(type: Copy) { externalJars.each { arg -> def jar = arg.replace('_', '-') // :( task("${arg}Copy", type: Copy) { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE from configurations.getByName("kotlin_${arg}_jar") { include "kotlin-${jar}*.jar" rename "kotlin-${jar}(.*).jar", "kotlin-${jar}.jar"