From af541dc6d329a8d26edb9f7b684bbf8e51ff8bab Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 18 Aug 2021 12:41:00 +0300 Subject: [PATCH] Build: Fix usages of deprecated ConfigureUtil in kotlin-native Required for Gradle 7+ #KTI-559 --- .../kotlin/org/jetbrains/kotlin/ExecClang.kt | 19 +++++++++---------- .../kotlin/org/jetbrains/kotlin/ExecLlvm.kt | 3 +-- .../org/jetbrains/kotlin/ExecutorService.kt | 17 ++++++++++++++--- .../plugin/konan/KonanArtifactContainer.kt | 13 ++++++------- .../plugin/konan/KonanBuildingConfig.kt | 3 +-- .../plugin/konan/KonanInteropLibrary.kt | 3 +-- .../plugin/konan/tasks/KonanBaseTasks.kt | 3 +-- .../plugin/konan/tasks/KonanInteropTask.kt | 9 +-------- 8 files changed, 34 insertions(+), 36 deletions(-) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecClang.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecClang.kt index 98f3310635c..f4f8785d609 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecClang.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecClang.kt @@ -22,7 +22,6 @@ import org.gradle.api.GradleException import org.gradle.api.Project import org.gradle.process.ExecResult import org.gradle.process.ExecSpec -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.konan.target.* import org.jetbrains.kotlin.konan.file.* @@ -69,11 +68,11 @@ class ExecClang(private val project: Project) { // The bare ones invoke clang with system default sysroot. fun execBareClang(action: Action): ExecResult { - return this.execClang(emptyList(), action) + return this.execClang(emptyList(), action) } fun execBareClang(closure: Closure): ExecResult { - return this.execClang(emptyList(), closure) + return this.execClang(emptyList(), closure) } // The konan ones invoke clang with konan provided sysroots. @@ -105,7 +104,7 @@ class ExecClang(private val project: Project) { */ fun execClangForCompilerTests(target: KonanTarget, action: Action): ExecResult { val defaultArgs = platformManager.platform(target).clang.clangArgs.toList() - return project.exec(Action { + return project.exec { action.execute(this) executable = if (target.family.isAppleFamily) { resolveToolchainExecutable(target, executable) @@ -113,14 +112,14 @@ class ExecClang(private val project: Project) { resolveExecutable(executable) } args = defaultArgs + args - }) + } } /** * @see execClangForCompilerTests */ fun execClangForCompilerTests(target: KonanTarget, closure: Closure): ExecResult = - execClangForCompilerTests(target, ConfigureUtil.configureUsing(closure)) + execClangForCompilerTests(target) { project.configure(this, closure) } // The toolchain ones execute clang from the toolchain. @@ -129,7 +128,7 @@ class ExecClang(private val project: Project) { } fun execToolchainClang(target: String?, closure: Closure): ExecResult { - return this.execToolchainClang(platformManager.targetManager(target).target, ConfigureUtil.configureUsing(closure)) + return this.execToolchainClang(platformManager.targetManager(target).target) { project.configure(this, closure) } } fun execToolchainClang(target: KonanTarget, action: Action): ExecResult { @@ -141,11 +140,11 @@ class ExecClang(private val project: Project) { } fun execToolchainClang(target: KonanTarget, closure: Closure): ExecResult { - return this.execToolchainClang(target, ConfigureUtil.configureUsing(closure)) + return this.execToolchainClang(target) { project.configure(this, closure) } } private fun execClang(defaultArgs: List, closure: Closure): ExecResult { - return this.execClang(defaultArgs, ConfigureUtil.configureUsing(closure)) + return this.execClang(defaultArgs) { project.configure(this, closure) } } private fun execClang(defaultArgs: List, action: Action): ExecResult { @@ -153,7 +152,7 @@ class ExecClang(private val project: Project) { action.execute(this) executable = resolveExecutable(executable) - val hostPlatform = project.findProperty("hostPlatform") as Platform + val hostPlatform = platformManager.hostPlatform environment["PATH"] = project.files(hostPlatform.clang.clangPaths).asPath + java.io.File.pathSeparator + environment["PATH"] args = args + defaultArgs diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecLlvm.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecLlvm.kt index 852527f7862..04c94a418ea 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecLlvm.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecLlvm.kt @@ -10,7 +10,6 @@ import org.gradle.api.Action import org.gradle.api.Project import org.gradle.process.ExecResult import org.gradle.process.ExecSpec -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.konan.util.DependencyProcessor fun execLlvmUtility(project: Project, utility: String, action: Action): ExecResult { @@ -22,5 +21,5 @@ fun execLlvmUtility(project: Project, utility: String, action: Action): ExecResult { - return execLlvmUtility(project, utility, ConfigureUtil.configureUsing(closure)) + return execLlvmUtility(project, utility) { project.configure(this, closure) } } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecutorService.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecutorService.kt index 626aa708820..83e42b7c0cc 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecutorService.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/ExecutorService.kt @@ -22,7 +22,6 @@ import org.gradle.api.Action import org.gradle.api.Project import org.gradle.process.ExecResult import org.gradle.process.ExecSpec -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.konan.target.* import java.io.* @@ -38,7 +37,8 @@ import java.util.concurrent.TimeUnit * @see org.gradle.api.Project.exec */ interface ExecutorService { - fun execute(closure: Closure): ExecResult? = execute(ConfigureUtil.configureUsing(closure)) + val project: Project + fun execute(closure: Closure): ExecResult? = execute { project.configure(this, closure) } fun execute(action: Action): ExecResult? } @@ -62,6 +62,7 @@ fun create(project: Project): ExecutorService { private fun wasmExecutor(project: Project) = object : ExecutorService { val absoluteTargetToolchain = project.testTargetConfigurables.absoluteTargetToolchain + override val project: Project get() = project override fun execute(action: Action): ExecResult? = project.exec { action.execute(this) val exe = executable @@ -141,7 +142,7 @@ fun runProcessWithInput(executor: (Action) -> ExecResult?, * @throws IllegalStateException if there are no executor in the project. */ val Project.executor: ExecutorService - get() = this.convention.plugins["executor"] as? ExecutorService + get() = this.extensions.findByName("executor") as? ExecutorService ?: throw IllegalStateException("Executor wasn't found") /** @@ -150,6 +151,7 @@ val Project.executor: ExecutorService * @code `executor.add(Action { it.environment = mapOf("JAVA_OPTS" to "-verbose:gc") })::execute` */ fun ExecutorService.add(actionParameter: Action) = object : ExecutorService { + override val project: Project get() = this@add.project override fun execute(action: Action): ExecResult? = this@add.execute(Action { action.execute(this) @@ -182,6 +184,7 @@ fun Project.executeAndCheck(executable: Path, arguments: List = emptyLis fun localExecutor(project: Project) = { a: Action -> project.exec(a) } fun localExecutorService(project: Project): ExecutorService = object : ExecutorService { + override val project: Project get() = project override fun execute(action: Action): ExecResult? = project.exec(action) } @@ -190,6 +193,8 @@ private fun emulatorExecutor(project: Project, target: KonanTarget) = object : E ?: error("$target does not support emulation!") val absoluteTargetSysRoot = configurables.absoluteTargetSysRoot + override val project: Project get() = project + override fun execute(action: Action): ExecResult? = project.exec { action.execute(this) @@ -285,6 +290,8 @@ private fun simulator(project: Project): ExecutorService = object : ExecutorServ else -> error("${target.architecture} can't be used in simulator.") }.toTypedArray() + override val project: Project get() = project + override fun execute(action: Action): ExecResult? = project.exec { action.execute(this) // Starting Xcode 11 `simctl spawn` requires explicit `--standalone` flag. @@ -320,6 +327,8 @@ private fun sshExecutor(project: Project, testTarget: KonanTarget): ExecutorServ else -> emptyList() } + override val project: Project get() = project + override fun execute(action: Action): ExecResult { lateinit var executableWithLibs: ExecutableWithDynamicLibs @@ -402,6 +411,8 @@ private fun deviceLauncher(project: Project) = object : ExecutorService { private val bundleID = "org.jetbrains.kotlin.KonanTestLauncher" + override val project: Project get() = project + override fun execute(action: Action): ExecResult? { val result: ExecResult? try { diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt index 9d97aa30e8b..aa9f4c5dedd 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanArtifactContainer.kt @@ -23,7 +23,6 @@ import org.gradle.api.internal.CollectionCallbackActionDecorator import org.gradle.api.internal.DefaultPolymorphicDomainObjectContainer import org.gradle.api.internal.project.ProjectInternal import org.gradle.internal.reflect.Instantiator -import org.gradle.util.ConfigureUtil import kotlin.reflect.KClass open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymorphicDomainObjectContainer>( @@ -96,7 +95,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun program(args: Map, name: String, configureAction: KonanProgram.() -> Unit) = create(name, KonanProgram::class, args, configureAction) fun program(args: Map, name: String, configureAction: Closure<*>) = - program(args, name, ConfigureUtil.configureUsing(configureAction)) + program(args, name) { project.configure(this, configureAction) } fun dynamic(args: Map, name: String) = create(name, KonanDynamic::class, args) fun dynamic(args: Map, name: String, configureAction: Action) = @@ -104,7 +103,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun dynamic(args: Map, name: String, configureAction: KonanDynamic.() -> Unit) = create(name, KonanDynamic::class, args, configureAction) fun dynamic(args: Map, name: String, configureAction: Closure<*>) = - dynamic(args, name, ConfigureUtil.configureUsing(configureAction)) + dynamic(args, name) { project.configure(this, configureAction) } fun framework(args: Map, name: String) = create(name, KonanFramework::class, args) fun framework(args: Map, name: String, configureAction: Action) = @@ -112,7 +111,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun framework(args: Map, name: String, configureAction: KonanFramework.() -> Unit) = create(name, KonanFramework::class, args, configureAction) fun framework(args: Map, name: String, configureAction: Closure<*>) = - framework(args, name, ConfigureUtil.configureUsing(configureAction)) + framework(args, name) { project.configure(this, configureAction) } fun library(args: Map, name: String) = create(name, KonanLibrary::class, args) fun library(args: Map, name: String, configureAction: Action) = @@ -120,7 +119,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun library(args: Map, name: String, configureAction: KonanLibrary.() -> Unit) = create(name, KonanLibrary::class, args, configureAction) fun library(args: Map, name: String, configureAction: Closure<*>) = - library(args, name, ConfigureUtil.configureUsing(configureAction)) + library(args, name) { project.configure(this, configureAction) } fun bitcode(args: Map, name: String) = create(name, KonanBitcode::class, args) fun bitcode(args: Map, name: String, configureAction: Action) = @@ -128,7 +127,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun bitcode(args: Map, name: String, configureAction: KonanBitcode.() -> Unit) = create(name, KonanBitcode::class, args, configureAction) fun bitcode(args: Map, name: String, configureAction: Closure<*>) = - bitcode(args, name, ConfigureUtil.configureUsing(configureAction)) + bitcode(args, name) { project.configure(this, configureAction) } fun interop(args: Map, name: String) = create(name, KonanInteropLibrary::class, args) fun interop(args: Map, name: String, configureAction: Action) = @@ -136,7 +135,7 @@ open class KonanArtifactContainer(val project: ProjectInternal) : DefaultPolymor fun interop(args: Map, name: String, configureAction: KonanInteropLibrary.() -> Unit) = create(name, KonanInteropLibrary::class, args, configureAction) fun interop(args: Map, name: String, configureAction: Closure<*>) = - interop(args, name, ConfigureUtil.configureUsing(configureAction)) + interop(args, name) { project.configure(this, configureAction) } fun program(name: String) = program(emptyMap(), name) fun program(name: String, configureAction: Action) = program(emptyMap(), name, configureAction) diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt index a65a6835fe7..1ab6dadb8c6 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanBuildingConfig.kt @@ -26,7 +26,6 @@ import org.gradle.api.plugins.BasePlugin import org.gradle.api.plugins.ExtensionAware import org.gradle.api.publish.maven.MavenPom import org.gradle.api.tasks.TaskProvider -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File @@ -215,7 +214,7 @@ abstract class KonanBuildingConfig( target(targetString) { configureAction.execute(this) } fun target(targetString: String, configureAction: Closure) = - target(targetString, ConfigureUtil.configureUsing(configureAction)) + target(targetString) { project.configure(this, configureAction) } fun pom(action: Action) = pomActions + action } diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt index 361ce473704..38658046b8f 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanInteropLibrary.kt @@ -21,7 +21,6 @@ import org.gradle.api.Action import org.gradle.api.Task import org.gradle.api.file.FileCollection import org.gradle.api.internal.project.ProjectInternal -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.konan.KonanInteropSpec.IncludeDirectoriesSpec import org.jetbrains.kotlin.gradle.plugin.tasks.KonanInteropTask import java.io.File @@ -72,7 +71,7 @@ open class KonanInteropLibrary(name: String, override fun headers(files: FileCollection) = tasks().forEach { it.configure { headers(files) } } override fun includeDirs(vararg values: Any) = tasks().forEach { it.configure { includeDirs(*values) } } - override fun includeDirs(closure: Closure) = includeDirs(ConfigureUtil.configureUsing(closure)) + override fun includeDirs(closure: Closure) = includeDirs { project.configure(this, closure) } override fun includeDirs(action: Action) = includeDirs { action.execute(this) } override fun includeDirs(configure: IncludeDirectoriesSpec.() -> Unit) = includeDirs.configure() diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt index df5231a493b..357914b38df 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt @@ -31,7 +31,6 @@ import org.gradle.api.tasks.* import org.gradle.language.cpp.CppBinary import org.gradle.language.cpp.internal.DefaultUsageContext import org.gradle.nativeplatform.Linkage -import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.experimental.internal.compatibleVariantIdentity import org.jetbrains.kotlin.gradle.plugin.konan.* import org.jetbrains.kotlin.konan.target.HostManager @@ -176,7 +175,7 @@ abstract class KonanArtifactWithLibrariesTask: KonanArtifactTask(), KonanArtifac // DSL - override fun libraries(closure: Closure) = libraries(ConfigureUtil.configureUsing(closure)) + override fun libraries(closure: Closure) = libraries { project.configure(this, closure) } override fun libraries(action: Action) = libraries { action.execute(this) } override fun libraries(configure: KonanLibrariesSpec.() -> Unit) { libraries.configure() } diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt index cb9c3f7f463..a9e3d09051a 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanInteropTask.kt @@ -20,18 +20,11 @@ import groovy.lang.Closure import org.gradle.api.Action import org.gradle.api.file.FileCollection import org.gradle.api.tasks.* -import org.gradle.util.ConfigureUtil -import org.gradle.workers.IsolationMode import org.gradle.workers.WorkAction import org.gradle.workers.WorkParameters import org.gradle.workers.WorkerExecutor import org.jetbrains.kotlin.gradle.plugin.konan.* import org.jetbrains.kotlin.gradle.plugin.konan.KonanInteropSpec.IncludeDirectoriesSpec -import org.jetbrains.kotlin.konan.CURRENT -import org.jetbrains.kotlin.konan.CompilerVersion -import org.jetbrains.kotlin.konan.library.defaultResolver -import org.jetbrains.kotlin.konan.target.CompilerOutputKind -import org.jetbrains.kotlin.konan.target.Distribution import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File import java.util.concurrent.ConcurrentHashMap @@ -150,7 +143,7 @@ open class KonanInteropTask @Inject constructor(@Internal val workerExecutor: Wo override fun includeDirs(vararg values: Any) = includeDirs.allHeaders(values.toList()) - override fun includeDirs(closure: Closure) = includeDirs(ConfigureUtil.configureUsing(closure)) + override fun includeDirs(closure: Closure) = includeDirs { project.configure(this, closure) } override fun includeDirs(action: Action) = includeDirs { action.execute(this) } override fun includeDirs(configure: IncludeDirectoriesSpec.() -> Unit) = includeDirs.configure()