From d8c6ad46064f4e657f52b214ba8c75678d272909 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Wed, 4 Dec 2019 19:30:28 +0700 Subject: [PATCH] Fix Gradle 'konan' plugin tests The konan plugin checks the GRADLE_METADATA feature preview option and enables publication only if this option is specified. But since version 6.0 Gradle metadata is enabled by default and the corresponding feature preview option was removed causing failures of konan plugin tests. This patch removes the checks mentioned above to fix these tests. --- .../kotlin/gradle/plugin/konan/KonanPlugin.kt | 15 ++++++--------- .../gradle/plugin/konan/tasks/KonanBaseTasks.kt | 2 -- .../src/test/kotlin/ToolingModelTests.kt | 10 +++------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt index b89516e886e..0f41f54bef1 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanPlugin.kt @@ -299,7 +299,6 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR KONAN_CONFIGURATION_BUILD_DIR ("konan.configuration.build.dir"), KONAN_DEBUGGING_SYMBOLS ("konan.debugging.symbols"), KONAN_OPTIMIZATIONS_ENABLE ("konan.optimizations.enable"), - KONAN_PUBLICATION_ENABLED ("konan.publication.enabled") } companion object { @@ -337,12 +336,12 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR project.tasks.create(KONAN_DOWNLOAD_TASK_NAME, KonanCompilerDownloadTask::class.java) project.tasks.create(KONAN_GENERATE_CMAKE_TASK_NAME, KonanGenerateCMakeTask::class.java) project.extensions.create(KONAN_EXTENSION_NAME, KonanExtension::class.java) - val container = project.extensions.create(KonanArtifactContainer::class.java, ARTIFACTS_CONTAINER_NAME, KonanArtifactContainer::class.java, project) - val isPublicationEnabled = project.gradle.services.get(FeaturePreviews::class.java).isFeatureEnabled(FeaturePreviews.Feature.GRADLE_METADATA) - project.setProperty(ProjectProperty.KONAN_PUBLICATION_ENABLED, isPublicationEnabled) - if (!isPublicationEnabled) { - project.logger.warn("feature GRADLE_METADATA is not enabled: publication is disabled") - } + val container = project.extensions.create( + KonanArtifactContainer::class.java, + ARTIFACTS_CONTAINER_NAME, + KonanArtifactContainer::class.java, + project + ) project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME) @@ -378,8 +377,6 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR // Enable multiplatform support project.pluginManager.apply(KotlinNativePlatformPlugin::class.java) project.afterEvaluate { - if (!isPublicationEnabled) - return@afterEvaluate project.pluginManager.withPlugin("maven-publish") { container.all { buildingConfig -> val konanSoftwareComponent = buildingConfig.mainVariant diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt index 7ebb04746b8..529e951d64c 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/tasks/KonanBaseTasks.kt @@ -101,8 +101,6 @@ abstract class KonanArtifactTask: KonanTargetableTask(), KonanArtifactSpec { val artifactNameWithoutSuffix = artifact.name.removeSuffix("$artifactSuffix") project.pluginManager.withPlugin("maven-publish") { - if (!(project.getProperty(KonanPlugin.ProjectProperty.KONAN_PUBLICATION_ENABLED) as Boolean)) - return@withPlugin platformConfiguration.artifacts.add(object: PublishArtifact { override fun getName(): String = artifactNameWithoutSuffix override fun getExtension() = if (artifactSuffix.startsWith('.')) artifactSuffix.substring(1) else artifactSuffix diff --git a/tools/kotlin-native-gradle-plugin/src/test/kotlin/ToolingModelTests.kt b/tools/kotlin-native-gradle-plugin/src/test/kotlin/ToolingModelTests.kt index fda4bf66cfc..f6280f71cae 100644 --- a/tools/kotlin-native-gradle-plugin/src/test/kotlin/ToolingModelTests.kt +++ b/tools/kotlin-native-gradle-plugin/src/test/kotlin/ToolingModelTests.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.gradle.plugin.test -import org.gradle.api.internal.FeaturePreviews import org.gradle.api.internal.project.ProjectInternal import org.gradle.testfixtures.ProjectBuilder import org.jetbrains.kotlin.gradle.plugin.konan.KonanPlugin @@ -233,8 +232,6 @@ open class ToolingModelTests { } } """.trimIndent()) - propertiesFile.appendText("konan.publication.enabled=true") - settingsFile.appendText("enableFeaturePreview('GRADLE_METADATA')") generateSrcFile("main.kt") } dependency.createRunner().withArguments("build", "publish").build() @@ -244,10 +241,9 @@ open class ToolingModelTests { } - val dependnent = ProjectBuilder.builder().withProjectDir(dependentDir).build() as ProjectInternal + val dependent = ProjectBuilder.builder().withProjectDir(dependentDir).build() as ProjectInternal - with(dependnent) { - gradle.services.get(FeaturePreviews::class.java).enableFeature(FeaturePreviews.Feature.GRADLE_METADATA) + with(dependent) { pluginManager.apply(KonanPlugin::class.java) konanArtifactsContainer.library("bar") repositories.maven { @@ -257,7 +253,7 @@ open class ToolingModelTests { add("artifactbar", "test:foo:1.0") } } - val model = KonanToolingModelBuilder.buildAll("konanModel", dependnent) + val model = KonanToolingModelBuilder.buildAll("konanModel", dependent) assertEquals(1, model.artifacts.size, "Incorrect number of artifacts.") val libraries = model.artifacts[0].libraries assertEquals(1, libraries.size, "Incorrect number of libraries.")