Add transitive dependencies on common MPP modules
Transitive dependencies on modules available via 'dependsOn' dependencies are added to java modules depending on MPP projects #KT-33025 Fixed
This commit is contained in:
+3
-5
@@ -240,11 +240,9 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtension() {
|
|||||||
val currentModules = userData[path] ?: ArrayList<String>().apply { userData[path] = this }
|
val currentModules = userData[path] ?: ArrayList<String>().apply { userData[path] = this }
|
||||||
// Test modules should not be added. Otherwise we could get dependnecy of java.mail on jvmTest
|
// Test modules should not be added. Otherwise we could get dependnecy of java.mail on jvmTest
|
||||||
val allSourceSets = target.compilations.filter { !it.isTestModule }.flatMap { it.sourceSets }.toSet()
|
val allSourceSets = target.compilations.filter { !it.isTestModule }.flatMap { it.sourceSets }.toSet()
|
||||||
val availableViaDependsOn = allSourceSets.flatMap { it.dependsOnSourceSets }.toSet()
|
val availableViaDependsOn = allSourceSets.flatMap { it.dependsOnSourceSets }.mapNotNull { mppModel.sourceSets[it] }
|
||||||
allSourceSets.filter { !availableViaDependsOn.contains(it.name) }.forEach { sourceSet ->
|
allSourceSets.union(availableViaDependsOn).forEach { sourceSet ->
|
||||||
run {
|
currentModules.add(getKotlinModuleId(gradleModule, sourceSet, resolverCtx))
|
||||||
currentModules.add(getKotlinModuleId(gradleModule, sourceSet, resolverCtx))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+109
@@ -227,6 +227,115 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testJvmWithJavaOnHMPP() {
|
||||||
|
configureByFiles()
|
||||||
|
importProject()
|
||||||
|
|
||||||
|
checkProjectStructure(true, false, true) {
|
||||||
|
module("jvm-on-mpp") {}
|
||||||
|
module("jvm-on-mpp.jvm-mod") {}
|
||||||
|
|
||||||
|
|
||||||
|
module("jvm-on-mpp.jvm-mod.main") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.main", DependencyScope.COMPILE)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.jvm-mod.test") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.main", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.jvm-mod.main", DependencyScope.COMPILE)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a") {
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.commonMain") {
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.commonTest") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jsMain") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.COMPILE)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jsTest") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jsMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsTest", DependencyScope.TEST)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jvmAndJsTest") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.TEST)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jvmMain") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.COMPILE)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.jvmTest") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmAndJsTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.jvmMain", DependencyScope.TEST)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.linuxAndJsTest") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.TEST)
|
||||||
|
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.linuxX64Main") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.COMPILE)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - builtin [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - iconv [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - linux [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - posix [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - stdlib", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - zlib [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.linuxX64Test") {
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.commonTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsMain", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxAndJsTest", DependencyScope.TEST)
|
||||||
|
moduleDependency("jvm-on-mpp.hmpp-mod-a.linuxX64Main", DependencyScope.TEST)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - builtin [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - iconv [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - linux [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - posix [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - stdlib", DependencyScope.PROVIDED)
|
||||||
|
libraryDependency("Kotlin/Native 1.3.50-dev-1383 - zlib [linux_x64]", DependencyScope.PROVIDED)
|
||||||
|
}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.main") {}
|
||||||
|
module("jvm-on-mpp.hmpp-mod-a.test") {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun checkProjectStructure(
|
private fun checkProjectStructure(
|
||||||
exhaustiveModuleList: Boolean = true,
|
exhaustiveModuleList: Boolean = true,
|
||||||
exhaustiveSourceSourceRootList: Boolean = true,
|
exhaustiveSourceSourceRootList: Boolean = true,
|
||||||
|
|||||||
+10
-1
@@ -591,12 +591,16 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
|||||||
module("project.jvm") {}
|
module("project.jvm") {}
|
||||||
module("project.jvm.main") {
|
module("project.jvm.main") {
|
||||||
moduleDependency("project.mpp-base.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("project.mpp-base.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("project.mpp-base.commonMain", DependencyScope.COMPILE)
|
||||||
moduleDependency("project.mpp.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("project.mpp.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("project.mpp.commonMain", DependencyScope.COMPILE)
|
||||||
}
|
}
|
||||||
module("project.jvm.test") {
|
module("project.jvm.test") {
|
||||||
moduleDependency("project.jvm.main", DependencyScope.COMPILE)
|
moduleDependency("project.jvm.main", DependencyScope.COMPILE)
|
||||||
moduleDependency("project.mpp-base.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("project.mpp-base.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("project.mpp-base.commonMain", DependencyScope.COMPILE)
|
||||||
moduleDependency("project.mpp.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("project.mpp.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("project.mpp.commonMain", DependencyScope.COMPILE)
|
||||||
}
|
}
|
||||||
module("project.mpp") {}
|
module("project.mpp") {}
|
||||||
module("project.mpp.commonMain") {
|
module("project.mpp.commonMain") {
|
||||||
@@ -649,13 +653,16 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
|||||||
module("mpp-jardep.java-project.main") {
|
module("mpp-jardep.java-project.main") {
|
||||||
moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.COMPILE)
|
||||||
moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("mpp-jardep.library1.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("mpp-jardep.library2.commonMain", DependencyScope.COMPILE)
|
||||||
|
|
||||||
}
|
}
|
||||||
module("mpp-jardep.java-project.test") {
|
module("mpp-jardep.java-project.test") {
|
||||||
moduleDependency("mpp-jardep.java-project.main", DependencyScope.COMPILE)
|
moduleDependency("mpp-jardep.java-project.main", DependencyScope.COMPILE)
|
||||||
moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("mpp-jardep.library1.jvmMain", DependencyScope.COMPILE)
|
||||||
moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.COMPILE)
|
moduleDependency("mpp-jardep.library2.jvmMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("mpp-jardep.library1.commonMain", DependencyScope.COMPILE)
|
||||||
|
moduleDependency("mpp-jardep.library2.commonMain", DependencyScope.COMPILE)
|
||||||
}
|
}
|
||||||
|
|
||||||
module("mpp-jardep.library1") {}
|
module("mpp-jardep.library1") {}
|
||||||
@@ -719,11 +726,13 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
|||||||
module("jvm-on-mpp.jvm-mod") {}
|
module("jvm-on-mpp.jvm-mod") {}
|
||||||
module("jvm-on-mpp.jvm-mod.main") {
|
module("jvm-on-mpp.jvm-mod.main") {
|
||||||
moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.COMPILE, false)
|
moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.COMPILE, false)
|
||||||
|
moduleDependency("jvm-on-mpp.mpp-mod-a.commonMain", DependencyScope.COMPILE, false)
|
||||||
moduleDependency("jvm-on-mpp.mpp-mod-a.main", DependencyScope.COMPILE, false)
|
moduleDependency("jvm-on-mpp.mpp-mod-a.main", DependencyScope.COMPILE, false)
|
||||||
}
|
}
|
||||||
module("jvm-on-mpp.jvm-mod.test") {
|
module("jvm-on-mpp.jvm-mod.test") {
|
||||||
moduleDependency("jvm-on-mpp.jvm-mod.main", DependencyScope.COMPILE, false)
|
moduleDependency("jvm-on-mpp.jvm-mod.main", DependencyScope.COMPILE, false)
|
||||||
moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.COMPILE, false)
|
moduleDependency("jvm-on-mpp.mpp-mod-a.jvmMain", DependencyScope.COMPILE, false)
|
||||||
|
moduleDependency("jvm-on-mpp.mpp-mod-a.commonMain", DependencyScope.COMPILE, false)
|
||||||
moduleDependency("jvm-on-mpp.mpp-mod-a.main", DependencyScope.COMPILE, false)
|
moduleDependency("jvm-on-mpp.mpp-mod-a.main", DependencyScope.COMPILE, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
kotlin_version = 1.3.50-dev-1383
|
||||||
|
coroutines_version = 1.1.1
|
||||||
|
moowork_node = 1.2.0
|
||||||
|
|
||||||
|
org.gradle.paralllel=true
|
||||||
|
kotlin.parallel.tasks.in.project=true
|
||||||
|
kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||||
Vendored
+82
@@ -0,0 +1,82 @@
|
|||||||
|
version '1.0.0'
|
||||||
|
|
||||||
|
apply plugin: 'kotlin-multiplatform'
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
dependencies {
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
|
||||||
|
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlin_version"
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvm {
|
||||||
|
withJava()
|
||||||
|
}
|
||||||
|
|
||||||
|
js()
|
||||||
|
|
||||||
|
linuxX64()
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
commonMain {
|
||||||
|
}
|
||||||
|
commonTest {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
jvmAndJsMain {
|
||||||
|
dependsOn(commonMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
jvmAndJsTest {
|
||||||
|
dependsOn(commonTest)
|
||||||
|
}
|
||||||
|
|
||||||
|
linuxAndJsMain {
|
||||||
|
dependsOn(commonMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
linuxAndJsTest {
|
||||||
|
dependsOn(commonTest)
|
||||||
|
}
|
||||||
|
|
||||||
|
jvm().compilations["main"].defaultSourceSet {
|
||||||
|
dependsOn(jvmAndJsMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
jvm().compilations["test"].defaultSourceSet {
|
||||||
|
dependsOn(jvmAndJsTest)
|
||||||
|
}
|
||||||
|
|
||||||
|
js().compilations["main"].defaultSourceSet {
|
||||||
|
dependsOn(jvmAndJsMain)
|
||||||
|
dependsOn(linuxAndJsMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
js().compilations["test"].defaultSourceSet {
|
||||||
|
dependsOn(jvmAndJsTest)
|
||||||
|
dependsOn(linuxAndJsTest)
|
||||||
|
}
|
||||||
|
|
||||||
|
linuxX64().compilations["main"].defaultSourceSet {
|
||||||
|
dependsOn(linuxAndJsMain)
|
||||||
|
}
|
||||||
|
|
||||||
|
linuxX64().compilations["test"].defaultSourceSet {
|
||||||
|
dependsOn(linuxAndJsTest)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Vendored
+15
@@ -0,0 +1,15 @@
|
|||||||
|
plugins {
|
||||||
|
id 'org.jetbrains.kotlin.jvm'
|
||||||
|
}
|
||||||
|
|
||||||
|
version 'unspecified'
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(":hmpp-mod-a")
|
||||||
|
}
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
maven { url 'http://dl.bintray.com/kotlin/kotlin-dev' }
|
||||||
|
maven { url 'http://dl.bintray.com/kotlin/kotlin-eap' }
|
||||||
|
|
||||||
|
mavenCentral()
|
||||||
|
mavenLocal()
|
||||||
|
jcenter()
|
||||||
|
|
||||||
|
maven { url 'https://dl.bintray.com/qwwdfsad/kotlinx' }
|
||||||
|
maven { url 'https://plugins.gradle.org/m2/' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rootProject.name = 'jvm-on-mpp'
|
||||||
|
include ':hmpp-mod-a', ':jvm-mod'
|
||||||
|
enableFeaturePreview('GRADLE_METADATA')
|
||||||
Reference in New Issue
Block a user