diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 28ca144e7f8..5df8380aea8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -283,6 +283,8 @@ class NewMultiplatformIT : BaseGradleIT() { private fun doTestJvmWithJava(testJavaSupportInJvmTargets: Boolean) = with(Project("sample-lib", GradleVersionRequired.AtLeast("5.0"), "new-mpp-lib-and-app")) { + embedProject(Project("sample-lib-gradle-kotlin-dsl", directoryPrefix = "new-mpp-lib-and-app")) + lateinit var classesWithoutJava: Set fun getFilePathsSet(inDirectory: String): Set { @@ -322,6 +324,7 @@ class NewMultiplatformIT : BaseGradleIT() { dependencies { jvm6MainImplementation("com.google.dagger:dagger:2.24") kapt("com.google.dagger:dagger-compiler:2.24") + kapt(project(":sample-lib-gradle-kotlin-dsl")) } """.trimIndent() ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PluginsDslIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PluginsDslIT.kt index e6838833ce4..e242a0c4166 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PluginsDslIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PluginsDslIT.kt @@ -62,7 +62,7 @@ class PluginsDslIT : BaseGradleIT() { } private const val MAVEN_LOCAL_URL_PLACEHOLDER = "" -private const val PLUGIN_MARKER_VERSION_PLACEHOLDER = "" +internal const val PLUGIN_MARKER_VERSION_PLACEHOLDER = "" internal fun BaseGradleIT.transformProjectWithPluginsDsl( projectName: String, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/VariantAwareDependenciesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/VariantAwareDependenciesIT.kt index 3f4cd264ebe..9a339377e9b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/VariantAwareDependenciesIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/VariantAwareDependenciesIT.kt @@ -290,10 +290,17 @@ class VariantAwareDependenciesIT : BaseGradleIT() { } } - private fun Project.embedProject(other: Project) { - setupWorkingDir() - other.setupWorkingDir() - other.projectDir.copyRecursively(projectDir.resolve(other.projectName)) - projectDir.resolve("settings.gradle").appendText("\ninclude '${other.projectName}'") +} + +internal fun BaseGradleIT.Project.embedProject(other: BaseGradleIT.Project) { + setupWorkingDir() + other.setupWorkingDir() + other.testCase.apply { + val gradleBuildScript = other.gradleBuildScript() + if (gradleBuildScript.extension == "kts") { + gradleBuildScript.modify { it.replace(".version(\"$PLUGIN_MARKER_VERSION_PLACEHOLDER\")", "") } + } } + other.projectDir.copyRecursively(projectDir.resolve(other.projectName)) + projectDir.resolve("settings.gradle").appendText("\ninclude '${other.projectName}'") } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index c3d9fc54fbd..3967d1032d0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -14,6 +14,7 @@ import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.attributes.Attribute +import org.gradle.api.attributes.Usage import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskDependency import org.gradle.api.tasks.compile.AbstractCompile @@ -143,6 +144,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { val aptConfiguration = project.configurations.create(configurationName).apply { // Should not be available for consumption from other projects during variant-aware dependency resolution: isCanBeConsumed = false + attributes.attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage::class.java, Usage.JAVA_RUNTIME)) } if (aptConfiguration.name != Kapt3KotlinGradleSubplugin.MAIN_KAPT_CONFIGURATION_NAME) {