Gradle HMPP support fixes after review

* Add version to project structure metadata
* Use a data class for module dependencies in project structure
* Use task registering API for new tasks
* Simplify code
* Extract compatibility wrappers
* Fix multi-file dependencies that transformations silently ignored
This commit is contained in:
Sergey Igushkin
2019-05-31 17:44:30 +03:00
parent 5d7bd6c01a
commit 988df517dd
11 changed files with 150 additions and 78 deletions
@@ -5,11 +5,12 @@
package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.internals.MULTIPLATFORM_PROJECT_METADATA_FILE_NAME
import org.jetbrains.kotlin.gradle.internals.parseKotlinSourceSetMetadataFromXml
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinProjectStructureMetadata
import org.jetbrains.kotlin.gradle.plugin.mpp.MULTIPLATFORM_PROJECT_METADATA_FILE_NAME
import org.jetbrains.kotlin.gradle.plugin.mpp.ModuleDependencyIdentifier
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.konan.file.File
import java.io.File
import java.util.zip.ZipFile
import javax.xml.parsers.DocumentBuilderFactory
import kotlin.test.Test
@@ -79,9 +80,6 @@ class HierarchicalMppIT : BaseGradleIT() {
}
private fun checkMyLibFoo(compiledProject: CompiledProject, subprojectPrefix: String? = null) = with(compiledProject) {
val taskPrefix = subprojectPrefix?.let { ":$it" }.orEmpty()
val directoryPrefix = subprojectPrefix?.let { "$it/" }.orEmpty()
assertSuccessful()
assertTasksExecuted(expectedTasks(subprojectPrefix))
@@ -297,7 +295,11 @@ class HierarchicalMppIT : BaseGradleIT() {
"linuxAndJsMain" to setOf("commonMain"),
"commonMain" to emptySet()
),
sourceSetModuleDependencies = sourceSetModuleDependencies
sourceSetModuleDependencies = sourceSetModuleDependencies.mapValues { (_, pairs) ->
pairs.map {
ModuleDependencyIdentifier(it.first, it.second)
}.toSet()
}
)
}