[Pill] Remove variant support from Pill, always import BASE modules

Pill variant configurations in build.gradle(.kts) files will be removed
in subsequent commits.
This commit is contained in:
Yan Zhulanow
2023-12-04 04:35:35 +09:00
committed by Space Team
parent 1fb8fb2324
commit e87ef36ef8
3 changed files with 6 additions and 33 deletions
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.pill.model.POrderRoot
import org.jetbrains.kotlin.pill.model.PProject
import java.io.File
import java.util.*
import kotlin.collections.HashMap
const val EMBEDDED_CONFIGURATION_NAME = "embedded"
@@ -90,17 +89,10 @@ class JpsCompatiblePluginTasks(
fun pill() {
initEnvironment(rootProject)
val variantOptionValue = System.getProperty("pill.variant", "base").uppercase(Locale.US)
val variant = PillExtensionMirror.Variant.values().firstOrNull { it.name == variantOptionValue }
?: run {
rootProject.logger.error("Invalid variant name: $variantOptionValue")
return
}
rootProject.logger.lifecycle("Pill: Setting up project for the '${variant.name.lowercase(Locale.US)}' variant...")
rootProject.logger.lifecycle("Pill: Setting up project...")
val modulePrefix = System.getProperty("pill.module.prefix", "")
val modelParser = ModelParser(variant, modulePrefix)
val modelParser = ModelParser(modulePrefix)
val dependencyPatcher = DependencyPatcher(rootProject)
val dependencyMappers = listOf(dependencyPatcher, ::attachPlatformSources, ::attachAsmSources)
+2 -10
View File
@@ -25,29 +25,21 @@ import org.gradle.kotlin.dsl.findByType
import org.gradle.language.jvm.tasks.ProcessResources
import org.jetbrains.kotlin.pill.model.POrderRoot.*
import org.jetbrains.kotlin.pill.model.PSourceRoot.*
import org.jetbrains.kotlin.pill.PillExtensionMirror.*
import org.jetbrains.kotlin.pill.model.*
import java.io.File
import java.util.*
import kotlin.collections.HashMap
typealias OutputDir = String
typealias GradleProjectPath = String
class ModelParser(private val variant: Variant, private val modulePrefix: String) {
class ModelParser(private val modulePrefix: String) {
fun parse(project: Project): PProject {
if (project != project.rootProject) {
error("$project is not a root project")
}
fun Project.matchesSelectedVariant(): Boolean {
val extension = this.findPillExtensionMirror() ?: return true
val projectVariant = extension.variant ?: Variant.BASE
return projectVariant in variant.includes
}
val (includedProjects, excludedProjects) = project.allprojects
.partition { it.plugins.hasPlugin("jps-compatible") && it.matchesSelectedVariant() }
.partition { it.plugins.hasPlugin("jps-compatible") }
val modules = includedProjects.flatMap { parseModules(it, excludedProjects) }
val artifacts = parseArtifacts(project)
@@ -8,16 +8,7 @@ package org.jetbrains.kotlin.pill
import java.io.File
import org.gradle.api.Project
open class PillExtensionMirror(variant: String?, val excludedDirs: List<File>) {
val variant = if (variant == null) null else Variant.valueOf(variant)
enum class Variant(includesFactory: () -> Set<Variant>) {
BASE({ setOf(BASE) }), // Includes only compiler (default)
FULL({ setOf(BASE, FULL) }); // Includes compiler and Gradle plugin
val includes by lazy { includesFactory() }
}
}
open class PillExtensionMirror(val excludedDirs: List<File>)
fun Project.findPillExtensionMirror(): PillExtensionMirror? {
val ext = extensions.findByName("pill") ?: return null
@@ -25,10 +16,8 @@ fun Project.findPillExtensionMirror(): PillExtensionMirror? {
@Suppress("UNCHECKED_CAST")
val serialized = ext::class.java.getMethod("serialize").invoke(ext) as Map<String, Any>
val variant = serialized["variant"] as String?
@Suppress("UNCHECKED_CAST")
val excludedDirs = serialized["excludedDirs"] as List<File>
return PillExtensionMirror(variant, excludedDirs)
return PillExtensionMirror(excludedDirs)
}