diff --git a/analysis/analysis-api-fe10/build.gradle.kts b/analysis/analysis-api-fe10/build.gradle.kts index f2719bc3cb6..204582a24ae 100644 --- a/analysis/analysis-api-fe10/build.gradle.kts +++ b/analysis/analysis-api-fe10/build.gradle.kts @@ -30,7 +30,10 @@ dependencies { sourceSets { "main" { projectDefault() } - "test" { projectDefault() } + "test" { + projectDefault() + generatedTestDir() + } } tasks.withType> { diff --git a/analysis/analysis-api-fir/build.gradle.kts b/analysis/analysis-api-fir/build.gradle.kts index 445a8fa73ce..1a9e6f7c000 100644 --- a/analysis/analysis-api-fir/build.gradle.kts +++ b/analysis/analysis-api-fir/build.gradle.kts @@ -46,7 +46,10 @@ dependencies { sourceSets { "main" { projectDefault() } - "test" { projectDefault() } + "test" { + projectDefault() + generatedTestDir() + } } projectTest(jUnitMode = JUnitMode.JUnit5) { diff --git a/analysis/analysis-api-standalone/build.gradle.kts b/analysis/analysis-api-standalone/build.gradle.kts index eef1fb1a504..9e72805461b 100644 --- a/analysis/analysis-api-standalone/build.gradle.kts +++ b/analysis/analysis-api-standalone/build.gradle.kts @@ -33,7 +33,10 @@ kotlin { sourceSets { "main" { projectDefault() } - "test" { projectDefault() } + "test" { + projectDefault() + generatedTestDir() + } } projectTest(jUnitMode = JUnitMode.JUnit5) { diff --git a/buildSrc/src/main/kotlin/sourceSets.kt b/buildSrc/src/main/kotlin/sourceSets.kt index af3e8e82d8a..c921eff6b3b 100644 --- a/buildSrc/src/main/kotlin/sourceSets.kt +++ b/buildSrc/src/main/kotlin/sourceSets.kt @@ -2,6 +2,8 @@ import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer +import org.gradle.kotlin.dsl.apply +import org.jetbrains.kotlin.ideaExt.idea inline fun Project.sourceSets(crossinline body: SourceSetsBuilder.() -> Unit) = SourceSetsBuilder(this).body() @@ -35,6 +37,20 @@ val SourceSet.projectDefault: Project.() -> Unit } } +val SourceSet.generatedTestDir: Project.() -> Unit + get() = { + val generationRoot = projectDir.resolve("tests-gen") + java.srcDir(generationRoot.name) + + if (kotlinBuildProperties.isInJpsBuildIdeaSync) { + apply(plugin = "idea") + idea { + this.module.generatedSourceDirs.add(generationRoot) + } + } + } + + val Project.sourceSets: SourceSetContainer get() = javaPluginExtension().sourceSets diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiConfiguratorFactoryProvider.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiConfiguratorFactoryProvider.kt index 4a2b3df9d75..63e54213299 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiConfiguratorFactoryProvider.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/dsl/AnalysisApiConfiguratorFactoryProvider.kt @@ -33,9 +33,9 @@ object AnalysisApiConfiguratorFactoryProvider { } fun getTestPath(data: AnalysisApiTestConfiguratorFactoryData): String? = when { - data.frontend == FrontendKind.Fir && data.analysisApiMode == AnalysisApiMode.Ide -> "analysis/analysis-api-fir/tests" - data.frontend == FrontendKind.Fe10 && data.analysisApiMode == AnalysisApiMode.Ide -> "analysis/analysis-api-fe10/tests" - data.frontend == FrontendKind.Fir && data.analysisApiMode == AnalysisApiMode.Standalone -> "analysis/analysis-api-standalone/tests" + data.frontend == FrontendKind.Fir && data.analysisApiMode == AnalysisApiMode.Ide -> "analysis/analysis-api-fir/tests-gen" + data.frontend == FrontendKind.Fe10 && data.analysisApiMode == AnalysisApiMode.Ide -> "analysis/analysis-api-fe10/tests-gen" + data.frontend == FrontendKind.Fir && data.analysisApiMode == AnalysisApiMode.Standalone -> "analysis/analysis-api-standalone/tests-gen" else -> null }