Fixed import of MPP project with single Android target
#KT-34639 Fixed
This commit is contained in:
+58
-4
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.gradle
|
||||
import com.intellij.openapi.roots.DependencyScope
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.config.ResourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.SourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestResourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase
|
||||
import org.jetbrains.kotlin.platform.CommonPlatforms
|
||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||
@@ -429,6 +426,63 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testSingleAndroidTarget() {
|
||||
configureByFiles()
|
||||
importProject()
|
||||
checkProjectStructure(exhaustiveDependencyList = false) {
|
||||
module("app") {
|
||||
sourceFolder("app/src/androidAndroidTest/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidAndroidTestDebug/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidDebug/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/androidDebugAndroidTest/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidDebugUnitTest/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidMain/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/androidRelease/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/androidReleaseUnitTest/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidTest/java", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidTest/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidTestDebug/java", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidTestDebug/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/androidTestRelease/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/debug/java", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/debug/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/main/java", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/main/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/release/java", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/release/kotlin", JavaSourceRootType.SOURCE)
|
||||
sourceFolder("app/src/test/java", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/test/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/testDebug/java", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/testDebug/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/testRelease/java", JavaSourceRootType.TEST_SOURCE)
|
||||
sourceFolder("app/src/testRelease/kotlin", JavaSourceRootType.TEST_SOURCE)
|
||||
|
||||
sourceFolder("app/src/androidAndroidTest/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidAndroidTestDebug/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidDebug/resources", JavaResourceRootType.RESOURCE)
|
||||
sourceFolder("app/src/androidDebugAndroidTest/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidDebugUnitTest/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidMain/resources", JavaResourceRootType.RESOURCE)
|
||||
sourceFolder("app/src/androidRelease/resources", JavaResourceRootType.RESOURCE)
|
||||
sourceFolder("app/src/androidReleaseUnitTest/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidTest/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidTestDebug/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
sourceFolder("app/src/androidTestRelease/resources", JavaResourceRootType.TEST_RESOURCE)
|
||||
}
|
||||
module("app_commonMain") {
|
||||
sourceFolder("app/src/commonMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("app/src/commonMain/resources", ResourceKotlinRootType)
|
||||
}
|
||||
module("app_commonTest") {
|
||||
sourceFolder("app/src/commonTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("app/src/commonTest/resources", TestResourceKotlinRootType)
|
||||
}
|
||||
module("project")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDependencyOnRoot() {
|
||||
configureByFiles()
|
||||
|
||||
@@ -668,6 +668,18 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
||||
}
|
||||
|
||||
for (sourceSet in sourceSets.values) {
|
||||
if (!isHMPPEnabled) {
|
||||
val name = sourceSet.name
|
||||
if (name == KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME) {
|
||||
sourceSet.isTestModule = false
|
||||
continue
|
||||
}
|
||||
if (name == KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) {
|
||||
sourceSet.isTestModule = true
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
(allSourceSetToCompilations[sourceSet]?.all { it.isTestModule }
|
||||
?: if (!isHMPPEnabled && sourceSet.name == KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) true else null)?.let { isTest ->
|
||||
sourceSet.isTestModule = isTest
|
||||
|
||||
@@ -242,7 +242,13 @@ class KotlinPlatformContainerImpl() : KotlinPlatformContainer {
|
||||
override fun supports(simplePlatform: KotlinPlatform): Boolean = platforms.contains(simplePlatform)
|
||||
|
||||
override fun addSimplePlatforms(platforms: Collection<KotlinPlatform>) {
|
||||
(myPlatforms ?: HashSet<KotlinPlatform>().apply { myPlatforms = this }).addAll(platforms)
|
||||
(myPlatforms ?: HashSet<KotlinPlatform>().apply { myPlatforms = this }).let {
|
||||
it.addAll(platforms)
|
||||
if (it.contains(KotlinPlatform.COMMON)) {
|
||||
it.clear()
|
||||
it.addAll(defaultCommonPlatform)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
apply from: "../include.gradle"
|
||||
def kotlinVersion = gradleKotlinPluginVersion('1.3.50')
|
||||
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'kotlin-multiplatform'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||
mavenCentral()
|
||||
}
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
android {
|
||||
compileSdkVersion 28
|
||||
defaultConfig {
|
||||
applicationId 'org.jetbrains.kotlin.mpp_app_android'
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 28
|
||||
versionCode 1
|
||||
versionName '1.0'
|
||||
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
}
|
||||
|
||||
kotlin {
|
||||
android("android")
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
implementation kotlin('stdlib-common')
|
||||
}
|
||||
}
|
||||
commonTest {
|
||||
dependencies {
|
||||
implementation kotlin('test-common')
|
||||
implementation kotlin('test-annotations-common')
|
||||
}
|
||||
}
|
||||
androidMain {
|
||||
dependencies {
|
||||
implementation kotlin('stdlib')
|
||||
}
|
||||
}
|
||||
androidTest {
|
||||
dependencies {
|
||||
implementation kotlin('test')
|
||||
implementation kotlin('test-junit')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
kotlin.code.style=official
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
|
||||
|
||||
mavenCentral()
|
||||
|
||||
maven { url 'https://plugins.gradle.org/m2/' }
|
||||
}
|
||||
}
|
||||
include ':app'
|
||||
Reference in New Issue
Block a user