Deprecate kotlin.mpp.androidSourceSetLayoutVersion=1
^KT-58489
This commit is contained in:
committed by
Space Team
parent
2eba7da5eb
commit
6d9b34ab46
-1
@@ -1 +0,0 @@
|
|||||||
kotlin.mpp.androidSourceSetLayoutVersion=1
|
|
||||||
-3
@@ -1,4 +1 @@
|
|||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
|
|
||||||
# Test is about compatibility, only version 1 was available in previous versions
|
|
||||||
kotlin.mpp.androidSourceSetLayoutVersion=1
|
|
||||||
-5
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLI
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_GRADLE_PLUGIN_COMPATIBILITY_NO_WARN
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_GRADLE_PLUGIN_COMPATIBILITY_NO_WARN
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION_1_NO_WARN
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_APPLY_DEFAULT_HIERARCHY_TEMPLATE
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_APPLY_DEFAULT_HIERARCHY_TEMPLATE
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_DEPRECATED_PROPERTIES_NO_WARN
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_DEPRECATED_PROPERTIES_NO_WARN
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_CINTEROP_COMMONIZATION
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_MPP_ENABLE_CINTEROP_COMMONIZATION
|
||||||
@@ -254,9 +253,6 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
|||||||
val mppAndroidSourceSetLayoutVersion: Int?
|
val mppAndroidSourceSetLayoutVersion: Int?
|
||||||
get() = this.property(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION)?.toIntOrNull()
|
get() = this.property(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION)?.toIntOrNull()
|
||||||
|
|
||||||
val ignoreMppAndroidSourceSetLayoutVersion: Boolean
|
|
||||||
get() = booleanProperty(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION_1_NO_WARN) ?: false
|
|
||||||
|
|
||||||
val ignoreMppAndroidSourceSetLayoutV2AndroidStyleDirs: Boolean
|
val ignoreMppAndroidSourceSetLayoutV2AndroidStyleDirs: Boolean
|
||||||
get() = booleanProperty(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN) ?: false
|
get() = booleanProperty(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN) ?: false
|
||||||
|
|
||||||
@@ -595,7 +591,6 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
|||||||
const val KOTLIN_MPP_DEPRECATED_PROPERTIES_NO_WARN = "kotlin.mpp.deprecatedProperties.nowarn"
|
const val KOTLIN_MPP_DEPRECATED_PROPERTIES_NO_WARN = "kotlin.mpp.deprecatedProperties.nowarn"
|
||||||
const val KOTLIN_MPP_ANDROID_GRADLE_PLUGIN_COMPATIBILITY_NO_WARN = "kotlin.mpp.androidGradlePluginCompatibility.nowarn"
|
const val KOTLIN_MPP_ANDROID_GRADLE_PLUGIN_COMPATIBILITY_NO_WARN = "kotlin.mpp.androidGradlePluginCompatibility.nowarn"
|
||||||
const val KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION = "kotlin.mpp.androidSourceSetLayoutVersion"
|
const val KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION = "kotlin.mpp.androidSourceSetLayoutVersion"
|
||||||
const val KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION_1_NO_WARN = "${KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION}1.nowarn"
|
|
||||||
const val KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN = "kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn"
|
const val KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN = "kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn"
|
||||||
const val KOTLIN_MPP_IMPORT_ENABLE_KGP_DEPENDENCY_RESOLUTION = "kotlin.mpp.import.enableKgpDependencyResolution"
|
const val KOTLIN_MPP_IMPORT_ENABLE_KGP_DEPENDENCY_RESOLUTION = "kotlin.mpp.import.enableKgpDependencyResolution"
|
||||||
const val KOTLIN_MPP_IMPORT_ENABLE_SLOW_SOURCES_JAR_RESOLVER = "kotlin.mpp.import.enableSlowSourcesJarResolver"
|
const val KOTLIN_MPP_IMPORT_ENABLE_SLOW_SOURCES_JAR_RESOLVER = "kotlin.mpp.import.enableSlowSourcesJarResolver"
|
||||||
|
|||||||
+5
-10
@@ -87,17 +87,12 @@ object KotlinToolingDiagnostics {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object PromoteAndroidSourceSetLayoutV2Warning : ToolingDiagnosticFactory(WARNING) {
|
object AndroidSourceSetLayoutV1Deprecation : ToolingDiagnosticFactory(ERROR) {
|
||||||
operator fun invoke() = build(
|
operator fun invoke() = build(
|
||||||
"""
|
"""
|
||||||
${multiplatformAndroidSourceSetLayoutV1.name} is deprecated. Use ${multiplatformAndroidSourceSetLayoutV2.name} instead.
|
The version 1 of Android source set layout is deprecated. Please remove kotlin.mpp.androidSourceSetLayoutVersion=1 from the gradle.properties file.
|
||||||
To enable ${multiplatformAndroidSourceSetLayoutV2.name}: put the following in your gradle.properties:
|
|
||||||
${PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION}=2
|
|
||||||
|
|
||||||
To suppress this warning: put the following in your gradle.properties:
|
Learn how to migrate to the version 2 source set layout at: https://kotl.in/android-source-set-layout-v2
|
||||||
${PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION_1_NO_WARN}=true
|
|
||||||
|
|
||||||
Learn more: https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -120,7 +115,7 @@ object KotlinToolingDiagnostics {
|
|||||||
To suppress this warning: put the following in your gradle.properties:
|
To suppress this warning: put the following in your gradle.properties:
|
||||||
${PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN}=true
|
${PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN}=true
|
||||||
|
|
||||||
Learn more: https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
Learn more: https://kotl.in/android-source-set-layout-v2
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -181,7 +176,7 @@ object KotlinToolingDiagnostics {
|
|||||||
sourceSets.getByName("androidAndroidTest") -> sourceSets.getByName("androidInstrumentedTest")
|
sourceSets.getByName("androidAndroidTest") -> sourceSets.getByName("androidInstrumentedTest")
|
||||||
|
|
||||||
Learn more about the new Kotlin/Android SourceSet Layout:
|
Learn more about the new Kotlin/Android SourceSet Layout:
|
||||||
https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
https://kotl.in/android-source-set-layout-v2
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -48,7 +48,7 @@ internal val multiplatformAndroidSourceSetLayoutV1 = KotlinAndroidSourceSetLayou
|
|||||||
MultiplatformLayoutV1SourceDirConfigurator
|
MultiplatformLayoutV1SourceDirConfigurator
|
||||||
),
|
),
|
||||||
checker = KotlinAndroidSourceSetLayoutChecker(
|
checker = KotlinAndroidSourceSetLayoutChecker(
|
||||||
MultiplatformLayoutV1PromoteV2Checker
|
MultiplatformLayoutV1DeprecationChecker
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -60,7 +60,8 @@ internal val multiplatformAndroidSourceSetLayoutV2 = KotlinAndroidSourceSetLayou
|
|||||||
AndroidKaptSourceSetConfigurator,
|
AndroidKaptSourceSetConfigurator,
|
||||||
MultiplatformAndroidResourceDirConfigurator,
|
MultiplatformAndroidResourceDirConfigurator,
|
||||||
MultiplatformLayoutV2DependsOnConfigurator,
|
MultiplatformLayoutV2DependsOnConfigurator,
|
||||||
Agp7AddKotlinSourcesToAndroidSourceSetConfigurator,
|
Agp7AddKotlinSourcesToAndroidSourceSetConfigurator
|
||||||
|
.onlyIf { AndroidGradlePluginVersion.current >= "7.0.0" },
|
||||||
MultiplatformLayoutV2SourceDirConfigurator,
|
MultiplatformLayoutV2SourceDirConfigurator,
|
||||||
MultiplatformLayoutV2DefaultManifestLocationConfigurator
|
MultiplatformLayoutV2DefaultManifestLocationConfigurator
|
||||||
),
|
),
|
||||||
|
|||||||
+5
-11
@@ -5,28 +5,22 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.sources.android.checker
|
package org.jetbrains.kotlin.gradle.plugin.sources.android.checker
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.KotlinAndroidSourceSetLayout
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.KotlinAndroidSourceSetLayout
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Promotes MultiplatformAndroidSourceSetLayoutV2 when requirements are met
|
* Emits a deprecation error
|
||||||
*/
|
*/
|
||||||
internal object MultiplatformLayoutV1PromoteV2Checker : KotlinAndroidSourceSetLayoutChecker {
|
internal object MultiplatformLayoutV1DeprecationChecker : KotlinAndroidSourceSetLayoutChecker {
|
||||||
override fun checkBeforeLayoutApplied(
|
override fun checkBeforeLayoutApplied(
|
||||||
diagnosticsCollector: KotlinToolingDiagnosticsCollector,
|
diagnosticsCollector: KotlinToolingDiagnosticsCollector,
|
||||||
target: KotlinAndroidTarget,
|
target: KotlinAndroidTarget,
|
||||||
layout: KotlinAndroidSourceSetLayout
|
layout: KotlinAndroidSourceSetLayout
|
||||||
) {
|
) {
|
||||||
if (target.project.kotlinPropertiesProvider.ignoreMppAndroidSourceSetLayoutVersion) return
|
diagnosticsCollector.reportOncePerGradleBuild(
|
||||||
runCatching {
|
target.project, KotlinToolingDiagnostics.AndroidSourceSetLayoutV1Deprecation()
|
||||||
if (MultiplatformLayoutV2AgpRequirementChecker.isAgpRequirementMet()) {
|
)
|
||||||
diagnosticsCollector.reportOncePerGradleBuild(
|
|
||||||
target.project, KotlinToolingDiagnostics.PromoteAndroidSourceSetLayoutV2Warning()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+9
@@ -16,8 +16,11 @@ import org.gradle.testfixtures.ProjectBuilder
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.extraProperties
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.findKotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.sources.android.findKotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.util.addBuildEventsListenerRegistryMock
|
import org.jetbrains.kotlin.gradle.util.addBuildEventsListenerRegistryMock
|
||||||
|
import org.jetbrains.kotlin.gradle.util.checkDiagnostics
|
||||||
import org.jetbrains.kotlin.gradle.util.setMultiplatformAndroidSourceSetLayoutVersion
|
import org.jetbrains.kotlin.gradle.util.setMultiplatformAndroidSourceSetLayoutVersion
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
@@ -44,6 +47,12 @@ class MultiplatformAndroidSourceSetLayoutV1Test {
|
|||||||
kotlin = project.multiplatformExtension
|
kotlin = project.multiplatformExtension
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `version 1 layout usage - emits a deprecation error`() {
|
||||||
|
kotlin.androidTarget()
|
||||||
|
project.evaluate()
|
||||||
|
project.checkDiagnostics("AndroidSourceSetV1Deprecation")
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `main source set with default settings`() {
|
fun `main source set with default settings`() {
|
||||||
|
|||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
[AndroidSourceSetLayoutV1Deprecation | ERROR] The version 1 of Android source set layout is deprecated. Please remove kotlin.mpp.androidSourceSetLayoutVersion=1 from the gradle.properties file.
|
||||||
|
|
||||||
|
Learn how to migrate to the version 2 source set layout at: https://kotl.in/android-source-set-layout-v2
|
||||||
|
----
|
||||||
|
[KotlinDefaultHierarchyFallbackDependsOnUsageDetected | WARNING] The Default Kotlin Hierarchy was not applied to 'root project 'test'':
|
||||||
|
Manual .dependsOn() edges were configured for the following source sets:
|
||||||
|
[androidAndroidTest, androidMain, androidTest]
|
||||||
|
|
||||||
|
To suppress the 'Default Hierarchy Template' add
|
||||||
|
'kotlin.mpp.applyDefaultHierarchyTemplate=false'
|
||||||
|
to your gradle.properties
|
||||||
|
----
|
||||||
|
[KotlinSourceSetTreeDependsOnMismatch | WARNING] Kotlin Source Set 'androidAndroidTest' can't depend on 'commonTest' as they are from different Source Set Trees.
|
||||||
|
Please remove this dependency edge.
|
||||||
+2
-2
@@ -4,7 +4,7 @@ Use src/androidMain/kotlin instead.
|
|||||||
To suppress this warning: put the following in your gradle.properties:
|
To suppress this warning: put the following in your gradle.properties:
|
||||||
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
||||||
|
|
||||||
Learn more: https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
Learn more: https://kotl.in/android-source-set-layout-v2
|
||||||
----
|
----
|
||||||
[AndroidStyleSourceDirUsageWarning | WARNING] Usage of 'Android Style' source directory src/test/kotlin is deprecated.
|
[AndroidStyleSourceDirUsageWarning | WARNING] Usage of 'Android Style' source directory src/test/kotlin is deprecated.
|
||||||
Use src/androidUnitTest/kotlin instead.
|
Use src/androidUnitTest/kotlin instead.
|
||||||
@@ -12,4 +12,4 @@ Use src/androidUnitTest/kotlin instead.
|
|||||||
To suppress this warning: put the following in your gradle.properties:
|
To suppress this warning: put the following in your gradle.properties:
|
||||||
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
||||||
|
|
||||||
Learn more: https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
Learn more: https://kotl.in/android-source-set-layout-v2
|
||||||
|
|||||||
+1
-1
@@ -4,4 +4,4 @@ Use src/androidInstrumentedTest/kotlin instead.
|
|||||||
To suppress this warning: put the following in your gradle.properties:
|
To suppress this warning: put the following in your gradle.properties:
|
||||||
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
kotlin.mpp.androidSourceSetLayoutV2AndroidStyleDirs.nowarn=true
|
||||||
|
|
||||||
Learn more: https://kotlinlang.org/docs/whatsnew18.html#kotlin-multiplatform-a-new-android-source-set-layout
|
Learn more: https://kotl.in/android-source-set-layout-v2
|
||||||
|
|||||||
Reference in New Issue
Block a user