[Gradle][MPP] Flag for suppressing warning for Android Style folders
^KT-54464 Verification Pending
This commit is contained in:
+5
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType.Companion.jsCompi
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_ABI_SNAPSHOT
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_JS_KARMA_BROWSERS
|
||||
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_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_ENABLE_CINTEROP_COMMONIZATION
|
||||
@@ -223,6 +224,9 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
||||
val ignoreMppAndroidSourceSetLayoutVersion: Boolean
|
||||
get() = booleanProperty(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_VERSION_1_NO_WARN) ?: false
|
||||
|
||||
val ignoreMppAndroidSourceSetLayoutV2AndroidStyleDirs: Boolean
|
||||
get() = booleanProperty(KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN) ?: false
|
||||
|
||||
val ignoreDisabledCInteropCommonization: Boolean
|
||||
get() = booleanProperty("$KOTLIN_MPP_ENABLE_CINTEROP_COMMONIZATION.nowarn") ?: false
|
||||
|
||||
@@ -489,6 +493,7 @@ internal class PropertiesProvider private constructor(private val project: Proje
|
||||
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_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_NATIVE_DEPENDENCY_PROPAGATION = "kotlin.native.enableDependencyPropagation"
|
||||
const val KOTLIN_MPP_ENABLE_OPTIMISTIC_NUMBER_COMMONIZATION = "kotlin.mpp.enableOptimisticNumberCommonization"
|
||||
const val KOTLIN_MPP_ENABLE_PLATFORM_INTEGER_COMMONIZATION = "kotlin.mpp.enablePlatformIntegerCommonization"
|
||||
|
||||
+6
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.gradle.plugin.sources.android.checker
|
||||
import com.android.build.gradle.api.AndroidSourceSet
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.KotlinAndroidSourceSetLayout
|
||||
import java.io.File
|
||||
@@ -24,6 +26,7 @@ internal object MultiplatformLayoutV2AndroidStyleSourceDirUsageChecker : KotlinA
|
||||
kotlinSourceSet: KotlinSourceSet,
|
||||
androidSourceSet: AndroidSourceSet
|
||||
) {
|
||||
if (target.project.kotlinPropertiesProvider.ignoreMppAndroidSourceSetLayoutV2AndroidStyleDirs) return
|
||||
val androidStyleSourceDir = target.project.file("src/${androidSourceSet.name}/kotlin")
|
||||
if (androidStyleSourceDir in kotlinSourceSet.kotlin.srcDirs && androidStyleSourceDir.exists()) {
|
||||
val kotlinStyleSourceDirToUse = target.project.file("src/${kotlinSourceSet.name}/kotlin")
|
||||
@@ -39,6 +42,9 @@ internal object MultiplatformLayoutV2AndroidStyleSourceDirUsageChecker : KotlinA
|
||||
get() = """
|
||||
Usage of 'Android Style' source directory $androidStyleSourceDirInUse is deprecated.
|
||||
Use $kotlinStyleSourceDirToUse instead.
|
||||
|
||||
To suppress this warning: put the following in your gradle.properties:
|
||||
${PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN}=true
|
||||
""".trimIndent()
|
||||
}
|
||||
}
|
||||
|
||||
+20
@@ -12,6 +12,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.internal.project.ProjectInternal
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.checker.MultiplatformLayoutV2AndroidStyleSourceDirUsageChecker.AndroidStyleSourceDirUsageDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.checker.MultiplatformLayoutV2MultiplatformLayoutV1StyleSourceDirUsageChecker.V1StyleSourceDirUsageDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.android.findAndroidSourceSet
|
||||
@@ -100,6 +101,25 @@ class MultiplatformAndroidSourceSetLayoutV2DiagnosticsTest {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - nowarn flag - android style source dir usage checker`() {
|
||||
val project = buildMinimalAndroidMultiplatformProject()
|
||||
project.propertiesExtension.set(PropertiesProvider.PropertyNames.KOTLIN_MPP_ANDROID_SOURCE_SET_LAYOUT_ANDROID_STYLE_NO_WARN, "true")
|
||||
val androidStyleMain = project.file("src/main/kotlin")
|
||||
val androidStyleUnitTest = project.file("src/test/kotlin")
|
||||
val androidStyleInstrumentedTest = project.file("src/androidTest/kotlin")
|
||||
|
||||
androidStyleMain.mkdirs()
|
||||
androidStyleUnitTest.mkdirs()
|
||||
androidStyleInstrumentedTest.mkdirs()
|
||||
project.evaluate()
|
||||
|
||||
project.checkCreatedSourceSets()
|
||||
|
||||
val warnings = diagnosticsReporter.warnings
|
||||
if (warnings.isNotEmpty()) fail("Expected no warnings emitted. Found $warnings")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `test - v1 style source dir usage checker`() {
|
||||
val project = buildMinimalAndroidMultiplatformProject()
|
||||
|
||||
Reference in New Issue
Block a user