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 com.intellij.openapi.roots.DependencyScope
|
||||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||||
import org.jetbrains.kotlin.config.ResourceKotlinRootType
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.config.SourceKotlinRootType
|
|
||||||
import org.jetbrains.kotlin.config.TestResourceKotlinRootType
|
|
||||||
import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase
|
import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase
|
||||||
import org.jetbrains.kotlin.platform.CommonPlatforms
|
import org.jetbrains.kotlin.platform.CommonPlatforms
|
||||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
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
|
@Test
|
||||||
fun testDependencyOnRoot() {
|
fun testDependencyOnRoot() {
|
||||||
configureByFiles()
|
configureByFiles()
|
||||||
|
|||||||
@@ -668,6 +668,18 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (sourceSet in sourceSets.values) {
|
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 }
|
(allSourceSetToCompilations[sourceSet]?.all { it.isTestModule }
|
||||||
?: if (!isHMPPEnabled && sourceSet.name == KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) true else null)?.let { isTest ->
|
?: if (!isHMPPEnabled && sourceSet.name == KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME) true else null)?.let { isTest ->
|
||||||
sourceSet.isTestModule = isTest
|
sourceSet.isTestModule = isTest
|
||||||
|
|||||||
@@ -242,7 +242,13 @@ class KotlinPlatformContainerImpl() : KotlinPlatformContainer {
|
|||||||
override fun supports(simplePlatform: KotlinPlatform): Boolean = platforms.contains(simplePlatform)
|
override fun supports(simplePlatform: KotlinPlatform): Boolean = platforms.contains(simplePlatform)
|
||||||
|
|
||||||
override fun addSimplePlatforms(platforms: Collection<KotlinPlatform>) {
|
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