[MPP] Use SetProperty in CInteropCommonizerTask for configuration avoidance
^KT-58712
This commit is contained in:
committed by
Space Team
parent
57cbab7d8e
commit
a1db10c5fe
+1
-1
@@ -150,7 +150,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
|||||||
}
|
}
|
||||||
|
|
||||||
project.commonizeCInteropTask?.configure { commonizeCInteropTask ->
|
project.commonizeCInteropTask?.configure { commonizeCInteropTask ->
|
||||||
commonizeCInteropTask.from((interopTask.get()))
|
commonizeCInteropTask.from(interopTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
val interopOutput = project.files(interopTask.map { it.outputFileProvider })
|
val interopOutput = project.files(interopTask.map { it.outputFileProvider })
|
||||||
|
|||||||
+7
-15
@@ -12,6 +12,7 @@ import org.gradle.api.model.ObjectFactory
|
|||||||
import org.gradle.api.provider.ListProperty
|
import org.gradle.api.provider.ListProperty
|
||||||
import org.gradle.api.provider.Property
|
import org.gradle.api.provider.Property
|
||||||
import org.gradle.api.provider.Provider
|
import org.gradle.api.provider.Provider
|
||||||
|
import org.gradle.api.provider.SetProperty
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.process.ExecOperations
|
import org.gradle.process.ExecOperations
|
||||||
import org.jetbrains.kotlin.commonizer.*
|
import org.jetbrains.kotlin.commonizer.*
|
||||||
@@ -136,7 +137,7 @@ internal open class CInteropCommonizerTask
|
|||||||
(group.targets + group.targets.allLeaves()).map { target ->
|
(group.targets + group.targets.allLeaves()).map { target ->
|
||||||
val externalDependencyFiles: List<FileCollection> = when (target) {
|
val externalDependencyFiles: List<FileCollection> = when (target) {
|
||||||
is LeafCommonizerTarget -> {
|
is LeafCommonizerTarget -> {
|
||||||
cinterops
|
cinterops.get()
|
||||||
.filter { cinterop -> cinterop.identifier in group.interops && cinterop.konanTarget == target.konanTarget }
|
.filter { cinterop -> cinterop.identifier in group.interops && cinterop.konanTarget == target.konanTarget }
|
||||||
.map { cinterop -> cinterop.dependencies }
|
.map { cinterop -> cinterop.dependencies }
|
||||||
}
|
}
|
||||||
@@ -170,25 +171,16 @@ internal open class CInteropCommonizerTask
|
|||||||
}
|
}
|
||||||
|
|
||||||
@get:Nested
|
@get:Nested
|
||||||
internal var cinterops = setOf<CInteropGist>()
|
internal val cinterops: SetProperty<CInteropGist> = objectFactory.setProperty<CInteropGist>()
|
||||||
private set
|
|
||||||
|
|
||||||
@get:OutputDirectories
|
@get:OutputDirectories
|
||||||
val allOutputDirectories: Set<File>
|
val allOutputDirectories: Set<File>
|
||||||
get() = allInteropGroups.getOrThrow().map { outputDirectory(it) }.toSet()
|
get() = allInteropGroups.getOrThrow().map { outputDirectory(it) }.toSet()
|
||||||
|
|
||||||
fun from(vararg tasks: CInteropProcess) = from(
|
internal fun from(task: TaskProvider<CInteropProcess>) {
|
||||||
tasks.toList()
|
dependsOn(task)
|
||||||
.onEach { task -> this.dependsOn(task) }
|
cinterops.add(task.map { it.toGist() })
|
||||||
.map { task -> task.toGist() }
|
|
||||||
)
|
|
||||||
|
|
||||||
internal fun from(vararg cinterop: CInteropGist) {
|
|
||||||
from(cinterop.toList())
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun from(cinterops: List<CInteropGist>) {
|
|
||||||
this.cinterops += cinterops
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
@@ -197,7 +189,7 @@ internal open class CInteropCommonizerTask
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun commonize(group: CInteropCommonizerGroup) {
|
private fun commonize(group: CInteropCommonizerGroup) {
|
||||||
val cinteropsForTarget = cinterops.filter { cinterop -> cinterop.identifier in group.interops }
|
val cinteropsForTarget = cinterops.get().filter { cinterop -> cinterop.identifier in group.interops }
|
||||||
outputDirectory(group).deleteRecursively()
|
outputDirectory(group).deleteRecursively()
|
||||||
if (cinteropsForTarget.isEmpty()) return
|
if (cinteropsForTarget.isEmpty()) return
|
||||||
|
|
||||||
|
|||||||
-1
@@ -21,7 +21,6 @@ internal class CompilerPluginData(
|
|||||||
|
|
||||||
internal class SharedCompilationData(
|
internal class SharedCompilationData(
|
||||||
val manifestFile: File,
|
val manifestFile: File,
|
||||||
val isAllowCommonizer: Boolean,
|
|
||||||
val refinesPaths: FileCollection,
|
val refinesPaths: FileCollection,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -419,7 +419,6 @@ internal constructor(
|
|||||||
.map { it + (languageSettings as DefaultLanguageSettingsBuilder).freeCompilerArgsForNonImport }
|
.map { it + (languageSettings as DefaultLanguageSettingsBuilder).freeCompilerArgsForNonImport }
|
||||||
|
|
||||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project)
|
private val runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project)
|
||||||
private val isAllowCommonizer: Boolean by lazy { project.isAllowCommonizer() }
|
|
||||||
// endregion.
|
// endregion.
|
||||||
|
|
||||||
@Suppress("DeprecatedCallableAddReplaceWith")
|
@Suppress("DeprecatedCallableAddReplaceWith")
|
||||||
@@ -507,7 +506,7 @@ internal constructor(
|
|||||||
properties[KLIB_PROPERTY_NATIVE_TARGETS] = konanTargetsForManifest
|
properties[KLIB_PROPERTY_NATIVE_TARGETS] = konanTargetsForManifest
|
||||||
properties.saveToFile(org.jetbrains.kotlin.konan.file.File(manifestFile.toPath()))
|
properties.saveToFile(org.jetbrains.kotlin.konan.file.File(manifestFile.toPath()))
|
||||||
|
|
||||||
return SharedCompilationData(manifestFile, isAllowCommonizer, refinesModule)
|
return SharedCompilationData(manifestFile, refinesModule)
|
||||||
}
|
}
|
||||||
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
|
|||||||
Reference in New Issue
Block a user