[analysis api, tests] generate analysis api in a separate tests-gen folder

This commit is contained in:
Ilya Kirillov
2022-04-05 12:24:25 +02:00
parent 22918ac2f4
commit 329e495b63
5 changed files with 31 additions and 6 deletions
+4 -1
View File
@@ -30,7 +30,10 @@ dependencies {
sourceSets {
"main" { projectDefault() }
"test" { projectDefault() }
"test" {
projectDefault()
generatedTestDir()
}
}
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>> {
+4 -1
View File
@@ -46,7 +46,10 @@ dependencies {
sourceSets {
"main" { projectDefault() }
"test" { projectDefault() }
"test" {
projectDefault()
generatedTestDir()
}
}
projectTest(jUnitMode = JUnitMode.JUnit5) {
@@ -33,7 +33,10 @@ kotlin {
sourceSets {
"main" { projectDefault() }
"test" { projectDefault() }
"test" {
projectDefault()
generatedTestDir()
}
}
projectTest(jUnitMode = JUnitMode.JUnit5) {
+16
View File
@@ -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
@@ -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
}