WIP: hot fixes
diff --git a/build.gradle.kts b/build.gradle.kts
index e64a125..b4319d3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -102,7 +102,7 @@
if (!project.hasProperty("versions.kotlin-native")) {
// BEWARE! Bumping this version doesn't take an immediate effect on TeamCity: KTI-1107
- extra["versions.kotlin-native"] = "2.0.0-dev-5387"
+ extra["versions.kotlin-native"] = "2.0.0-Beta1"
}
val irCompilerModules = arrayOf(
diff --git a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
index 9f36281..ce5f057 100644
--- a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
+++ b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
@@ -79,5 +79,5 @@
// this class is ignored during classpath normalization when considering whether to recompile dependencies in Kotlin build
private object KotlinVersionCurrentValue {
@kotlin.jvm.JvmStatic
- fun get(): KotlinVersion = KotlinVersion(2, 0, 255) // value is written here automatically during build
+ fun get(): KotlinVersion = KotlinVersion(2, 0, 0) // value is written here automatically during build
}
diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
index e9a1451..e93170e 100644
--- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTarget.kt
@@ -16,6 +16,7 @@
import org.gradle.api.file.FileCollection
import org.gradle.api.provider.Provider
import org.gradle.api.publish.maven.MavenPublication
+import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.PRESETS_API_IS_DEPRECATED_MESSAGE
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
@@ -71,7 +72,7 @@
fun composeCopyResources(resourceDirectoryName: Provider<Path>, resourceIdentity: Provider<Path>, taskName: String)
@InternalKotlinGradlePluginApi
- fun composeResolveResources(): FileCollection
+ fun composeResolveResources(): TaskProvider<*>
}
interface KotlinTargetWithTests<E : KotlinExecution.ExecutionSource, T : KotlinTargetTestRun<E>> : KotlinTarget {
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
index a8b7462..dd08e42 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinTarget.kt
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Action
+import org.gradle.api.DefaultTask
import org.gradle.api.DomainObjectSet
import org.gradle.api.Project
import org.gradle.api.artifacts.ConfigurablePublishArtifact
@@ -13,6 +14,7 @@
import org.gradle.api.provider.Provider
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.tasks.Copy
+import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.PRESETS_API_IS_DEPRECATED_MESSAGE
@@ -22,7 +24,9 @@
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsageContext.MavenScope.COMPILE
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsageContext.MavenScope.RUNTIME
+import org.jetbrains.kotlin.gradle.tasks.dependsOn
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
+import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.tooling.core.MutableExtras
import org.jetbrains.kotlin.tooling.core.mutableExtrasOf
@@ -94,13 +98,13 @@
artifactNameAppendix = dashSeparatedName(targetName.toLowerCaseAsciiOnly())
)
)
-
- // FIXME: Is this needed here or only in the overrides?
- usageContexts.add(
- createResourcesSoftwareComponentVariant(
- mainCompilation
- )
- )
+//
+// // FIXME: Is this needed here or only in the overrides?
+// usageContexts.add(
+// createResourcesSoftwareComponentVariant(
+// mainCompilation
+// )
+// )
val result = createKotlinVariant(componentName, mainCompilation, usageContexts)
@@ -224,7 +228,7 @@
composeResourceDirectories.add(ComposeResources(resourceDirectoryName, resourceIdentity, taskName))
}
- override fun composeResolveResources(): FileCollection {
+ override fun composeResolveResources(): TaskProvider<*> {
val outputDirectory = project.layout.buildDirectory.dir("resolvedResourcesFor${disambiguationClassifier}")
val resourcesConfiguration = project.configurations.getByName(
lowerCamelCaseName(
@@ -256,23 +260,30 @@
}
}
- val outputCollection = project.files()
- outputCollection.builtBy(unzipAndCopyResourcesToBuildDirectoryTask)
+ val result = project.registerTask<DefaultTask>("aggregateResources${disambiguationClassifier}") {
+ it.outputs.dir(outputDirectory)
+ }
+// val outputCollection = project.files()
+ result.dependsOn(unzipAndCopyResourcesToBuildDirectoryTask)
// Copy resources for this target
// FIXME: Copypasta
// FIXME: Resources and outputDirectory are Providers, but this method doesn't await for any lifecycle event. This will break if called at a wrong time
- compilations.getByName("main").registerCopyResourcesTasks(
- "ResolveSelfResources${disambiguationClassifier}",
- composeResourceDirectories,
- outputDirectory
- ).forEach { copyTask ->
- outputCollection.builtBy(copyTask)
+ project.launch {
+ this.await(KotlinPluginLifecycle.Stage.AfterFinaliseRefinesEdges)
+ compilations.getByName("main").registerCopyResourcesTasks(
+ "ResolveSelfResources${disambiguationClassifier}",
+ composeResourceDirectories,
+ outputDirectory
+ ).forEach { copyTask ->
+ result.dependsOn(copyTask)
+ }
}
+
// FIXME: Listing files in this directory may result in trash such as .DS_Store to suddenly appear. Figure out how to get the root of a zipTree?
- outputCollection.from(outputDirectory.map { it.asFile.listFiles() ?: emptyArray() })
- return outputCollection
+// outputCollection.from(outputDirectory.map { it.asFile.listFiles() ?: emptyArray() })
+ return result
}
}
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
index ebcac5c..f3f6e2a 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationDependencyConfigurationsFactories.kt
@@ -218,7 +218,9 @@
)
).apply {
// FIXME: See usages of shouldResolveConsistentlyWith
- extendsFrom(compileDependencyConfiguration)
+// dependencies.addAllLater(target.project.provider { compileDependencyConfiguration.allDependencies })
+// extendsFrom(compileDependencyConfiguration)
+ extendsFrom(implementationConfiguration)
usesPlatformOf(target)
isVisible = false
isCanBeConsumed = false
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
index b5b9738..f98a62b 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetImpl.kt
@@ -58,7 +58,7 @@
TODO("Not yet implemented")
}
- override fun composeResolveResources(): FileCollection {
+ override fun composeResolveResources(): TaskProvider<*> {
TODO("Not yet implemented")
}