[Gradle] Suppress warnings only for the Gradle versions that produce them
KT-55972 Related
This commit is contained in:
committed by
Space Team
parent
3373a1dd90
commit
9bb2a2468d
+18
-7
@@ -282,7 +282,10 @@ abstract class BaseGradleIT {
|
||||
val enableCompatibilityMetadataVariant: Boolean? = null,
|
||||
val withReports: List<BuildReportType> = emptyList(),
|
||||
val enableKpmModelMapping: Boolean? = null,
|
||||
)
|
||||
) {
|
||||
val safeAndroidGradlePluginVersion: AGPVersion
|
||||
get() = androidGradlePluginVersion ?: error("AGP version is expected to be set")
|
||||
}
|
||||
|
||||
enum class ConfigurationCacheProblems {
|
||||
FAIL, WARN
|
||||
@@ -1018,16 +1021,24 @@ fun BaseGradleIT.BuildOptions.withFreeCommandLineArgument(argument: String) = co
|
||||
freeCommandLineArgs = freeCommandLineArgs + argument
|
||||
)
|
||||
|
||||
fun BaseGradleIT.BuildOptions.suppressDeprecationWarningsOnAgpLessThan(
|
||||
agpVersion: AGPVersion,
|
||||
@Suppress("UNUSED_PARAMETER") reason: String // just to require specifying a reason for suppressing
|
||||
fun BaseGradleIT.BuildOptions.suppressDeprecationWarningsOn(
|
||||
@Suppress("UNUSED_PARAMETER") reason: String, // just to require specifying a reason for suppressing
|
||||
predicate: (BaseGradleIT.BuildOptions) -> Boolean
|
||||
) =
|
||||
if ((androidGradlePluginVersion ?: error("AGP version expected to be configured")) >= agpVersion) {
|
||||
this
|
||||
if (predicate(this)) {
|
||||
copy(warningMode = WarningMode.Summary)
|
||||
} else {
|
||||
copy(warningMode = WarningMode.All)
|
||||
this
|
||||
}
|
||||
|
||||
fun BaseGradleIT.BuildOptions.suppressDeprecationWarningsSinceGradleVersion(
|
||||
gradleVersion: String,
|
||||
currentGradleVersion: String,
|
||||
reason: String
|
||||
) = suppressDeprecationWarningsOn(reason) {
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(gradleVersion)
|
||||
}
|
||||
|
||||
private const val MAVEN_LOCAL_URL_PLACEHOLDER = "<mavenLocalUrl>"
|
||||
internal const val PLUGIN_MARKER_VERSION_PLACEHOLDER = "<pluginMarkerVersion>"
|
||||
|
||||
|
||||
+6
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.Disabled
|
||||
@@ -20,9 +19,12 @@ class BuildIdeaKpmProjectModelIT : KGPBaseTest() {
|
||||
@DisplayName("Check 'buildIdeaKpmProjectModel' creates expected files")
|
||||
fun `test - simple kpm project`(gradleVersion: GradleVersion) {
|
||||
project(
|
||||
"kpm-simple", gradleVersion, buildOptions = defaultBuildOptions.copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
"kpm-simple",
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
gradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
) {
|
||||
build("buildIdeaKpmProjectModel") {
|
||||
|
||||
+8
-5
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.gradle
|
||||
|
||||
import groovy.json.StringEscapeUtils
|
||||
import org.gradle.api.logging.LogLevel.INFO
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
import org.jetbrains.kotlin.commonizer.CommonizerTarget
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.util.reportSourceSetCommonizerDependencies
|
||||
import org.jetbrains.kotlin.incremental.testingUtils.assertEqualDirectories
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
@@ -415,12 +415,15 @@ class CommonizerIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `test KT-49735 two kotlin targets with same konanTarget`() {
|
||||
with(Project("commonize-kt-49735-twoKotlinTargets-oneKonanTarget")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
build(
|
||||
":assemble",
|
||||
options = defaultBuildOptions().copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
)
|
||||
options = defaultBuildOptions()
|
||||
.suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
) {
|
||||
assertTasksExecuted(":compileCommonMainKotlinMetadata")
|
||||
assertSuccessful()
|
||||
|
||||
+4
-3
@@ -157,9 +157,10 @@ class ConfigurationAvoidanceIT : KGPBaseTest() {
|
||||
"kotlin-js-browser-project",
|
||||
gradleVersion,
|
||||
kts = true,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
// bug in Gradle: https://github.com/gradle/gradle/issues/15796
|
||||
warningMode = if (gradleVersion < GradleVersion.version("7.0")) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
buildOptions = defaultBuildOptions.suppressDeprecationWarningsUntilGradleVersion(
|
||||
TestVersions.Gradle.G_7_0,
|
||||
gradleVersion,
|
||||
"bug in Gradle: https://github.com/gradle/gradle/issues/15796"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
+6
-3
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.testkit.runner.BuildResult
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.internals.MULTIPLATFORM_PROJECT_METADATA_JSON_FILE_NAME
|
||||
@@ -328,8 +327,12 @@ class HierarchicalMppIT : KGPBaseTest() {
|
||||
@DisplayName("KT-48370: Multiplatform Gradle build fails for Native targets with \"we cannot choose between the following variants of project\"")
|
||||
fun testMultiModulesHmppKt48370(gradleVersion: GradleVersion) {
|
||||
project(
|
||||
"hierarchical-mpp-multi-modules", gradleVersion, buildOptions = defaultBuildOptions.copy(
|
||||
warningMode = WarningMode.All // Workaround for KT-55751
|
||||
"hierarchical-mpp-multi-modules",
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
gradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
) {
|
||||
build("assemble")
|
||||
|
||||
+4
-3
@@ -1604,9 +1604,10 @@ class GeneralKotlin2JsGradlePluginIT : KGPBaseTest() {
|
||||
project(
|
||||
"cleanTask",
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
// bug in Gradle: https://github.com/gradle/gradle/issues/15796
|
||||
warningMode = if (gradleVersion < GradleVersion.version("7.0")) WarningMode.None else defaultBuildOptions.warningMode
|
||||
buildOptions = defaultBuildOptions.suppressDeprecationWarningsUntilGradleVersion(
|
||||
TestVersions.Gradle.G_7_0,
|
||||
gradleVersion,
|
||||
"bug in Gradle: https://github.com/gradle/gradle/issues/15796"
|
||||
)
|
||||
) {
|
||||
build("checkDownloadedFolder")
|
||||
|
||||
+13
-12
@@ -5,23 +5,24 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.junit.Test
|
||||
import kotlin.test.Ignore
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class KpmCompilerPluginMppIT : BaseGradleIT() {
|
||||
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
)
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
fun testTransientPluginOptions() {
|
||||
val project = transformProjectWithPluginsDsl("kpmTransientPluginOptions")
|
||||
fun testTransientPluginOptions() = with(transformProjectWithPluginsDsl("kpmTransientPluginOptions")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options = defaultBuildOptions().suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
|
||||
fun updatePluginOptions(regularOptionValue: String, transientOptionValue: String) {
|
||||
project.gradleProperties().writeText(
|
||||
gradleProperties().writeText(
|
||||
"""
|
||||
test-plugin.regular=$regularOptionValue
|
||||
test-plugin.transient=$transientOptionValue
|
||||
@@ -30,7 +31,7 @@ class KpmCompilerPluginMppIT : BaseGradleIT() {
|
||||
}
|
||||
|
||||
updatePluginOptions("XXX", "YYY")
|
||||
project.build("compileKotlin") {
|
||||
build("compileKotlin", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksExecuted(":compileKotlinJvm")
|
||||
compilerArgs(":compileKotlinJvm").also { args ->
|
||||
@@ -47,14 +48,14 @@ class KpmCompilerPluginMppIT : BaseGradleIT() {
|
||||
|
||||
// When transient plugin option change
|
||||
updatePluginOptions("XXX", "ZZZ")
|
||||
project.build("compileKotlin") {
|
||||
build("compileKotlin", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksUpToDate(":compileKotlinJvm")
|
||||
}
|
||||
|
||||
// When regular plugin option change
|
||||
updatePluginOptions("ZZZ", "ZZZ")
|
||||
project.build("compileKotlin") {
|
||||
build("compileKotlin", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksExecuted(":compileKotlinJvm")
|
||||
compilerArgs(":compileKotlinJvm").also { args ->
|
||||
|
||||
+7
-4
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.gradle
|
||||
|
||||
import com.intellij.testFramework.TestDataPath
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.internals.KOTLIN_12X_MPP_DEPRECATION_WARNING
|
||||
import org.jetbrains.kotlin.gradle.plugin.EXPECTED_BY_CONFIG_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.IMPLEMENT_CONFIG_NAME
|
||||
@@ -350,15 +351,17 @@ class MultiplatformGradleIT : BaseGradleIT() {
|
||||
projectName = "kt-35942-android"
|
||||
)
|
||||
) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
build(
|
||||
":lib1:compileDebugUnitTestKotlin",
|
||||
options = defaultBuildOptions().copy(
|
||||
androidGradlePluginVersion = AGPVersion.v4_2_0,
|
||||
androidHome = KtTestUtil.findAndroidSdk().also { acceptAndroidSdkLicenses(it) },
|
||||
).suppressDeprecationWarningsOnAgpLessThan(
|
||||
AGPVersion.v7_3_0,
|
||||
"uses deprecated IncrementalTaskInputs; relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty"
|
||||
)
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5); relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty (Gradle 7.4)"
|
||||
) { options ->
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && options.safeAndroidGradlePluginVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
) {
|
||||
assertSuccessful()
|
||||
assertTasksExecuted(":lib1:compileDebugKotlin")
|
||||
|
||||
+6
-6
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle
|
||||
import org.gradle.api.logging.LogLevel
|
||||
import org.jetbrains.kotlin.gradle.native.GeneralNativeIT.Companion.withNativeCommandLineArguments
|
||||
import org.jetbrains.kotlin.gradle.native.GeneralNativeIT.Companion.containsSequentially
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.native.*
|
||||
import org.jetbrains.kotlin.gradle.native.MPPNativeTargets
|
||||
@@ -28,7 +27,6 @@ import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.library.KLIB_PROPERTY_SHORT_NAME
|
||||
import org.jetbrains.kotlin.library.KLIB_PROPERTY_UNIQUE_NAME
|
||||
import org.junit.Assert
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import java.util.*
|
||||
import java.util.jar.JarFile
|
||||
@@ -1572,15 +1570,17 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
fun testUnusedSourceSetsReportAndroid() = with(Project("new-mpp-android", gradleVersion)) {
|
||||
setupWorkingDir()
|
||||
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
build(
|
||||
"assembleDebug",
|
||||
// https://issuetracker.google.com/issues/152187160
|
||||
options = defaultBuildOptions().copy(
|
||||
androidGradlePluginVersion = AGPVersion.v4_2_0,
|
||||
).suppressDeprecationWarningsOnAgpLessThan(
|
||||
AGPVersion.v7_3_0,
|
||||
"uses deprecated IncrementalTaskInputs; relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty"
|
||||
)
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5); relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty (Gradle 7.4)"
|
||||
) { options ->
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && options.safeAndroidGradlePluginVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
) {
|
||||
assertSuccessful()
|
||||
assertNotContains(
|
||||
|
||||
+6
-4
@@ -5,9 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertTrue
|
||||
@@ -358,11 +358,13 @@ class VariantAwareDependenciesMppIT : BaseGradleIT() {
|
||||
"""
|
||||
)
|
||||
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
build(
|
||||
resolveConfigurationTaskName,
|
||||
options = defaultBuildOptions().copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
options = defaultBuildOptions().suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
) {
|
||||
assertSuccessful()
|
||||
|
||||
+6
-6
@@ -854,12 +854,12 @@ class KotlinAndroidMppIT : KGPBaseTest() {
|
||||
project(
|
||||
"new-mpp-android-agp-compatibility",
|
||||
consumerGradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
androidVersion = consumerAgpVersion,
|
||||
// Workaround for a deprecation warning from AGP
|
||||
// Relying on FileTrees for ignoring empty directories when using @SkipWhenEmpty has been deprecated.
|
||||
warningMode = if (AGPVersion.fromString(consumerAgpVersion) <= AGPVersion.v7_1_0) WarningMode.None else WarningMode.Fail,
|
||||
),
|
||||
buildOptions = defaultBuildOptions.copy(androidVersion = consumerAgpVersion)
|
||||
.suppressDeprecationWarningsOn(
|
||||
"AGP relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty which has been deprecated."
|
||||
) { options ->
|
||||
consumerGradleVersion >= GradleVersion.version(TestVersions.Gradle.G_7_4) && AGPVersion.fromString(options.safeAndroidVersion) < AGPVersion.v7_1_0
|
||||
},
|
||||
buildJdk = jdkVersion.location,
|
||||
localRepoDir = tempDir
|
||||
) {
|
||||
|
||||
+6
-7
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.android
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||
@@ -24,12 +23,12 @@ class MultiplatformAndroidSourceSetLayoutV2IT : KGPBaseTest() {
|
||||
project(
|
||||
"multiplatformAndroidSourceSetLayout2",
|
||||
gradleVersion,
|
||||
defaultBuildOptions.copy(
|
||||
androidVersion = agpVersion,
|
||||
// Workaround for a deprecation warning from AGP
|
||||
// Relying on FileTrees for ignoring empty directories when using @SkipWhenEmpty has been deprecated.
|
||||
warningMode = if (AGPVersion.fromString(agpVersion) <= AGPVersion.v7_1_0) WarningMode.None else WarningMode.Fail,
|
||||
),
|
||||
defaultBuildOptions.copy(androidVersion = agpVersion)
|
||||
.suppressDeprecationWarningsOn(
|
||||
"AGP relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty which has been deprecated."
|
||||
) { options ->
|
||||
gradleVersion >= GradleVersion.version(TestVersions.Gradle.G_7_4) && AGPVersion.fromString(options.safeAndroidVersion) < AGPVersion.v7_1_0
|
||||
},
|
||||
buildJdk = jdkVersion.location
|
||||
) {
|
||||
build("test") {
|
||||
|
||||
+19
-17
@@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle.mpp
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.GradleVersionRequired
|
||||
import org.jetbrains.kotlin.gradle.chooseWrapperVersionOrFinishTest
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.embedProject
|
||||
import org.jetbrains.kotlin.gradle.mpp.ResolvedVariantChecker.ResolvedVariantRequest
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
@@ -122,17 +120,20 @@ abstract class AndroidAndJavaConsumeMppLibIT : BaseGradleIT() {
|
||||
val jdk11Home = File(System.getProperty("jdk11Home"))
|
||||
Assume.assumeTrue("This test requires JDK11 for AGP7", jdk11Home.isDirectory)
|
||||
|
||||
val producerBuildOptions = defaultBuildOptions().copy(
|
||||
javaHome = jdk11Home,
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = producerAgpVersion,
|
||||
// Workaround for a deprecation warning from AGP
|
||||
// Relying on FileTrees for ignoring empty directories when using @SkipWhenEmpty has been deprecated.
|
||||
warningMode = if (producerAgpVersion <= AGPVersion.v7_1_0) WarningMode.None else WarningMode.Fail,
|
||||
)
|
||||
producerBuildOptions.androidHome?.let { acceptAndroidSdkLicenses(it) }
|
||||
val producerBuildOptions: BuildOptions
|
||||
|
||||
dependencyProject = Project("new-mpp-android", producerGradleVersion).apply {
|
||||
val usedProducerGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
producerBuildOptions = defaultBuildOptions().copy(
|
||||
javaHome = jdk11Home,
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = producerAgpVersion,
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP relies on FileTrees for ignoring empty directories when using @SkipWhenEmpty which has been deprecated (Gradle 7.4)"
|
||||
) {
|
||||
GradleVersion.version(usedProducerGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_4) && producerAgpVersion < AGPVersion.v7_1_0
|
||||
}
|
||||
producerBuildOptions.androidHome?.let { acceptAndroidSdkLicenses(it) }
|
||||
projectDir.deleteRecursively()
|
||||
setupWorkingDir()
|
||||
// Don't need custom attributes here
|
||||
@@ -288,15 +289,16 @@ abstract class AndroidAndJavaConsumeMppLibIT : BaseGradleIT() {
|
||||
"com.example:lib:1.0"
|
||||
else ":${dependencyProject.projectName}:lib"
|
||||
|
||||
val consumerWarningMode =
|
||||
if (consumerAgpVersion >= AGPVersion.v7_3_0 || GradleVersion.version(usedConsumerGradleVersion) < GradleVersion.version("7.5")) WarningMode.Fail else WarningMode.None
|
||||
val consumerBuildOptions = defaultBuildOptions().copy(
|
||||
javaHome = File(System.getProperty("jdk11Home")),
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = consumerAgpVersion,
|
||||
kotlinVersion = withKotlinVersion ?: defaultBuildOptions().kotlinVersion,
|
||||
warningMode = consumerWarningMode
|
||||
)
|
||||
kotlinVersion = withKotlinVersion ?: defaultBuildOptions().kotlinVersion
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5)"
|
||||
) {
|
||||
GradleVersion.version(usedConsumerGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && consumerAgpVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
|
||||
val variantCheckRequests = mutableMapOf<ResolvedVariantRequest, String>()
|
||||
|
||||
|
||||
+36
-21
@@ -5,10 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.native
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.GradleVersionRequired
|
||||
import org.jetbrains.kotlin.gradle.suppressDeprecationWarningsOnAgpLessThan
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||
import org.jetbrains.kotlin.gradle.util.modify
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
@@ -35,6 +34,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `assemble AppleFrameworkForXcode tasks for IosArm64`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "debug",
|
||||
@@ -43,8 +43,10 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
"TARGET_BUILD_DIR" to "no use",
|
||||
"FRAMEWORKS_FOLDER_PATH" to "no use"
|
||||
),
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
).suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
build("assembleDebugAppleFrameworkForXcodeIosArm64", options = options) {
|
||||
assertSuccessful()
|
||||
@@ -65,6 +67,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `assemble fat AppleFrameworkForXcode tasks for Arm64 and X64 simulators`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "Release",
|
||||
@@ -73,8 +76,10 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
"TARGET_BUILD_DIR" to "no use",
|
||||
"FRAMEWORKS_FOLDER_PATH" to "no use"
|
||||
),
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
).suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
build("assembleReleaseAppleFrameworkForXcode", options = options) {
|
||||
assertSuccessful()
|
||||
@@ -90,6 +95,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `check that macOS framework has symlinks`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "debug",
|
||||
@@ -98,9 +104,11 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
"EXPANDED_CODE_SIGN_IDENTITY" to "-",
|
||||
"TARGET_BUILD_DIR" to workingDir.absolutePath,
|
||||
"FRAMEWORKS_FOLDER_PATH" to "${projectName}/build/xcode-derived"
|
||||
),
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
)
|
||||
).suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
build(":shared:embedAndSignAppleFrameworkForXcode", options = options) {
|
||||
assertSuccessful()
|
||||
@@ -128,6 +136,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `check all registered tasks with Xcode environment for Debug IosArm64 configuration`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "Debug",
|
||||
@@ -137,10 +146,11 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
"TARGET_BUILD_DIR" to "testBuildDir",
|
||||
"FRAMEWORKS_FOLDER_PATH" to "testFrameworksDir"
|
||||
)
|
||||
).suppressDeprecationWarningsOnAgpLessThan(
|
||||
AGPVersion.v7_3_0,
|
||||
"uses deprecated IncrementalTaskInputs"
|
||||
)
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5)"
|
||||
) { options ->
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && options.safeAndroidGradlePluginVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
build("tasks", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksRegistered(
|
||||
@@ -162,16 +172,18 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `check embedAndSignAppleFrameworkForXcode was registered without required Xcode environments`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "Debug",
|
||||
"SDK_NAME" to "iphoneos",
|
||||
"ARCHS" to "arm64"
|
||||
)
|
||||
).suppressDeprecationWarningsOnAgpLessThan(
|
||||
AGPVersion.v7_3_0,
|
||||
"uses deprecated IncrementalTaskInputs"
|
||||
)
|
||||
).suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5)"
|
||||
) { options ->
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && options.safeAndroidGradlePluginVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
build("tasks", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksRegistered(
|
||||
@@ -199,6 +211,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `check that static framework for Arm64 is built but is not embedded`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options: BuildOptions = defaultBuildOptions().copy(
|
||||
customEnvironmentVariables = mapOf(
|
||||
"CONFIGURATION" to "debug",
|
||||
@@ -207,8 +220,10 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
"TARGET_BUILD_DIR" to "no use",
|
||||
"FRAMEWORKS_FOLDER_PATH" to "no use"
|
||||
),
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
).suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
setupWorkingDir()
|
||||
projectDir.resolve("shared/build.gradle.kts").modify {
|
||||
|
||||
+9
-7
@@ -5,9 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.native
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.GradleVersionRequired
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.DUMMY_FRAMEWORK_TASK_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_BUILD_TASK_NAME
|
||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_GEN_TASK_NAME
|
||||
@@ -1249,11 +1247,15 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
taskName: String,
|
||||
vararg args: String
|
||||
) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
// check that test executable
|
||||
build(taskName, *args, options = defaultBuildOptions().copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
)) {
|
||||
build(
|
||||
taskName, *args, options = defaultBuildOptions().suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
)
|
||||
) {
|
||||
//base checks
|
||||
assertSuccessful()
|
||||
hooks.trigger(this)
|
||||
|
||||
+8
-5
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.gradle.native
|
||||
|
||||
import com.intellij.testFramework.TestDataFile
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jdom.input.SAXBuilder
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
@@ -15,6 +14,7 @@ import org.jetbrains.kotlin.gradle.internals.DISABLED_NATIVE_TARGETS_REPORTER_WA
|
||||
import org.jetbrains.kotlin.gradle.internals.NO_NATIVE_STDLIB_PROPERTY_WARNING
|
||||
import org.jetbrains.kotlin.gradle.internals.NO_NATIVE_STDLIB_WARNING
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeOutputKind
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl
|
||||
import org.jetbrains.kotlin.gradle.util.modify
|
||||
import org.jetbrains.kotlin.gradle.util.runProcess
|
||||
@@ -312,12 +312,15 @@ class GeneralNativeIT : BaseGradleIT() {
|
||||
transformNativeTestProjectWithPluginDsl("frameworks", directoryPrefix = "native-binaries")
|
||||
) {
|
||||
fun assemble(check: CompiledProject.() -> Unit) {
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
build(
|
||||
"assemble",
|
||||
options = defaultBuildOptions().copy(
|
||||
// Workaround for KT-55751
|
||||
warningMode = WarningMode.None,
|
||||
),
|
||||
options = defaultBuildOptions()
|
||||
.suppressDeprecationWarningsSinceGradleVersion(
|
||||
TestVersions.Gradle.G_7_4,
|
||||
currentGradleVersion,
|
||||
"Workaround for KT-55751"
|
||||
),
|
||||
check = check
|
||||
)
|
||||
}
|
||||
|
||||
+9
-7
@@ -5,9 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.native
|
||||
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.GradleVersionRequired
|
||||
import org.jetbrains.kotlin.gradle.suppressDeprecationWarningsOnAgpLessThan
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.*
|
||||
import org.jetbrains.kotlin.gradle.testbase.TestVersions
|
||||
import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl
|
||||
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
@@ -94,10 +94,12 @@ class XCFrameworkIT : BaseGradleIT() {
|
||||
@Test
|
||||
fun `check there aren't XCFramework tasks without declaration in build script`() {
|
||||
with(Project("sharedAppleFramework")) {
|
||||
val options = defaultBuildOptions().suppressDeprecationWarningsOnAgpLessThan(
|
||||
AGPVersion.v7_3_0,
|
||||
"uses deprecated IncrementalTaskInputs"
|
||||
)
|
||||
val currentGradleVersion = chooseWrapperVersionOrFinishTest()
|
||||
val options = defaultBuildOptions().suppressDeprecationWarningsOn(
|
||||
"AGP uses deprecated IncrementalTaskInputs (Gradle 7.5)"
|
||||
) { options ->
|
||||
GradleVersion.version(currentGradleVersion) >= GradleVersion.version(TestVersions.Gradle.G_7_5) && options.safeAndroidGradlePluginVersion < AGPVersion.v7_3_0
|
||||
}
|
||||
build("tasks", options = options) {
|
||||
assertSuccessful()
|
||||
assertTasksNotRegistered(
|
||||
|
||||
+4
-3
@@ -20,9 +20,10 @@ class CleanDataTaskIT : KGPBaseTest() {
|
||||
project(
|
||||
"cleanTask",
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
// bug in Gradle: https://github.com/gradle/gradle/issues/15796
|
||||
warningMode = if (gradleVersion < GradleVersion.version("7.0")) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
buildOptions = defaultBuildOptions.suppressDeprecationWarningsUntilGradleVersion(
|
||||
TestVersions.Gradle.G_7_0,
|
||||
gradleVersion,
|
||||
"bug in Gradle: https://github.com/gradle/gradle/issues/15796"
|
||||
)
|
||||
) {
|
||||
build("testCleanTask")
|
||||
|
||||
+24
-1
@@ -12,6 +12,8 @@ import org.jetbrains.kotlin.cli.common.CompilerSystemProperties.COMPILE_INCREMEN
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.report.BuildReportType
|
||||
import org.jetbrains.kotlin.gradle.suppressDeprecationWarningsOn
|
||||
import org.jetbrains.kotlin.gradle.util.AGPVersion
|
||||
import org.junit.jupiter.api.condition.OS
|
||||
import java.util.*
|
||||
|
||||
@@ -40,6 +42,9 @@ data class BuildOptions(
|
||||
val statisticsForceValidation: Boolean = true,
|
||||
val usePreciseOutputsBackup: Boolean? = null,
|
||||
) {
|
||||
val safeAndroidVersion: String
|
||||
get() = androidVersion ?: error("AGP version is expected to be set")
|
||||
|
||||
data class KaptOptions(
|
||||
val verbose: Boolean = false,
|
||||
val incrementalKapt: Boolean = false,
|
||||
@@ -153,4 +158,22 @@ data class BuildOptions(
|
||||
|
||||
return arguments.toList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun BuildOptions.suppressDeprecationWarningsOn(
|
||||
@Suppress("UNUSED_PARAMETER") reason: String, // just to require specifying a reason for suppressing
|
||||
predicate: (BuildOptions) -> Boolean
|
||||
) = if (predicate(this)) {
|
||||
copy(warningMode = WarningMode.Summary)
|
||||
} else {
|
||||
this
|
||||
}
|
||||
|
||||
fun BuildOptions.suppressDeprecationWarningsSinceGradleVersion(
|
||||
gradleVersion: String,
|
||||
currentGradleVersion: GradleVersion,
|
||||
reason: String
|
||||
) = suppressDeprecationWarningsOn(reason) {
|
||||
currentGradleVersion >= GradleVersion.version(gradleVersion)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user