Wizard: use kotlinx-collections-immutable for storing IRs
This commit is contained in:
@@ -9,6 +9,7 @@ dependencies {
|
||||
|
||||
testImplementation(project(":kotlin-test:kotlin-test-junit"))
|
||||
testImplementation(commonDep("junit:junit"))
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.2")
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
+4
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.core
|
||||
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import java.io.IOException
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
@@ -95,6 +96,9 @@ class ListBuilder<T> {
|
||||
fun <T> buildList(builder: ListBuilder<T>.() -> Unit) =
|
||||
ListBuilder<T>().apply(builder).build()
|
||||
|
||||
fun <T> buildPersistenceList(builder: ListBuilder<T>.() -> Unit) =
|
||||
buildList(builder).toPersistentList()
|
||||
|
||||
object RandomIdGenerator {
|
||||
private val chars = ('a'..'z') + ('A'..'Z') + ('0'..'9')
|
||||
private const val idLength = 8
|
||||
|
||||
+9
-8
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
||||
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.safeAs
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.*
|
||||
@@ -21,9 +22,9 @@ data class BuildFileIR(
|
||||
val directoryPath: Path,
|
||||
val modules: ModulesStructureIR,
|
||||
val pom: PomIR,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : FileIR {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): BuildFileIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): BuildFileIR = copy(irs = irs)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun withModulesUpdated(updater: (ModuleIR) -> TaskResult<ModuleIR>): TaskResult<BuildFileIR> =
|
||||
@@ -139,12 +140,12 @@ sealed class ModulesStructureIR : BuildSystemIR, IrsOwner {
|
||||
data class MultiplatformModulesStructureIR(
|
||||
val targets: List<BuildSystemIR>,
|
||||
override val modules: List<MultiplatformModuleIR>,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : GradleIR, ModulesStructureIR() {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun withModules(modules: List<ModuleIR>) = copy(modules = modules as List<MultiplatformModuleIR>)
|
||||
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): MultiplatformModulesStructureIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): MultiplatformModulesStructureIR = copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
sectionCall("kotlin") {
|
||||
@@ -173,10 +174,10 @@ fun MultiplatformModulesStructureIR.updateTargets(
|
||||
|
||||
data class SingleplatformModulesStructureWithSingleModuleIR(
|
||||
val module: SingleplatformModuleIR,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : ModulesStructureIR() {
|
||||
override val modules: List<SingleplatformModuleIR> = listOf(module)
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): SingleplatformModulesStructureWithSingleModuleIR =
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): SingleplatformModulesStructureWithSingleModuleIR =
|
||||
copy(irs = irs)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
@@ -188,10 +189,10 @@ data class SingleplatformModulesStructureWithSingleModuleIR(
|
||||
}
|
||||
}
|
||||
|
||||
data class RootFileModuleStructureIR(override val irs: List<BuildSystemIR>) : ModulesStructureIR() {
|
||||
data class RootFileModuleStructureIR(override val irs: PersistentList<BuildSystemIR>) : ModulesStructureIR() {
|
||||
override val modules = emptyList<ModuleIR>()
|
||||
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): RootFileModuleStructureIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): RootFileModuleStructureIR = copy(irs = irs)
|
||||
|
||||
override fun BuildFilePrinter.render() = when (this) {
|
||||
is MavenPrinter -> {
|
||||
|
||||
+5
-3
@@ -1,13 +1,15 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
||||
|
||||
import kotlinx.collections.immutable.*
|
||||
|
||||
|
||||
interface IrsOwner {
|
||||
val irs: List<BuildSystemIR>
|
||||
fun withReplacedIrs(irs: List<BuildSystemIR>): IrsOwner
|
||||
val irs: PersistentList<BuildSystemIR>
|
||||
fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): IrsOwner
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <I : IrsOwner> I.withIrs(irs: List<BuildSystemIR>) = withReplacedIrs(irs = this.irs + irs) as I
|
||||
fun <I : IrsOwner> I.withIrs(irs: List<BuildSystemIR>) = withReplacedIrs(irs = this.irs + irs.toPersistentList()) as I
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <I : IrsOwner> I.withIrs(vararg irs: BuildSystemIR) = withReplacedIrs(irs = this.irs + irs) as I
|
||||
|
||||
+5
-4
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
||||
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
||||
@@ -24,12 +25,12 @@ sealed class ModuleIR : IrsOwner, BuildSystemIR {
|
||||
data class SingleplatformModuleIR(
|
||||
override val name: String,
|
||||
override val path: Path,
|
||||
override val irs: List<BuildSystemIR>,
|
||||
override val irs: PersistentList<BuildSystemIR>,
|
||||
override val template: Template?,
|
||||
override val originalModule: Module,
|
||||
override val sourcesets: List<SingleplatformSourcesetIR>
|
||||
) : ModuleIR() {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): SingleplatformModuleIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): SingleplatformModuleIR = copy(irs = irs)
|
||||
|
||||
override fun BuildFilePrinter.render() = when (this) {
|
||||
is GradlePrinter -> {
|
||||
@@ -49,12 +50,12 @@ data class SingleplatformModuleIR(
|
||||
data class MultiplatformModuleIR(
|
||||
override val name: String,
|
||||
override val path: Path,
|
||||
override val irs: List<BuildSystemIR>,
|
||||
override val irs: PersistentList<BuildSystemIR>,
|
||||
override val template: Template?,
|
||||
override val originalModule: Module,
|
||||
override val sourcesets: List<MultiplatformSourcesetIR>
|
||||
) : GradleIR, ModuleIR() {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): MultiplatformModuleIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): MultiplatformModuleIR = copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
sourcesets.map { sourceset ->
|
||||
|
||||
+5
-4
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem
|
||||
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.GradleIR
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||
@@ -22,10 +23,10 @@ sealed class SourcesetIR : BuildSystemIR {
|
||||
data class SingleplatformSourcesetIR(
|
||||
override val sourcesetType: SourcesetType,
|
||||
override val path: Path,
|
||||
override val irs: List<BuildSystemIR>,
|
||||
override val irs: PersistentList<BuildSystemIR>,
|
||||
override val original: Sourceset
|
||||
) : SourcesetIR(), IrsOwner {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): SingleplatformSourcesetIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): SingleplatformSourcesetIR = copy(irs = irs)
|
||||
override fun BuildFilePrinter.render() = Unit
|
||||
}
|
||||
|
||||
@@ -33,10 +34,10 @@ data class MultiplatformSourcesetIR(
|
||||
override val sourcesetType: SourcesetType,
|
||||
override val path: Path,
|
||||
val targetName: String,
|
||||
override val irs: List<BuildSystemIR>,
|
||||
override val irs: PersistentList<BuildSystemIR>,
|
||||
override val original: Sourceset
|
||||
) : SourcesetIR(), IrsOwner, GradleIR {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): MultiplatformSourcesetIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): MultiplatformSourcesetIR = copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() = getting(sourcesetName, prefix = null) {
|
||||
val dependencies = irsOfType<DependencyIR>()
|
||||
|
||||
+3
-2
@@ -5,15 +5,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle
|
||||
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||
|
||||
data class SettingsGradleFileIR(
|
||||
val projectName: String,
|
||||
val subProjects: List<String>,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : FileIR, GradleIR {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): SettingsGradleFileIR = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): SettingsGradleFileIR = copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
irsOfTypeOrNull<PluginManagementIR>()?.let { pluginManagementIrs ->
|
||||
|
||||
+7
-6
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform
|
||||
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.IrsOwner
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.KotlinIR
|
||||
@@ -37,12 +38,12 @@ fun TargetConfigurationIR.addWithJavaIntoJvmTarget() = when {
|
||||
|
||||
data class DefaultTargetConfigurationIR(
|
||||
val targetAccess: TargetAccessIR,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : TargetConfigurationIR {
|
||||
override val targetName: String
|
||||
get() = targetAccess.nonDefaultName ?: targetAccess.type.name
|
||||
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): DefaultTargetConfigurationIR =
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): DefaultTargetConfigurationIR =
|
||||
copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
@@ -59,9 +60,9 @@ data class DefaultTargetConfigurationIR(
|
||||
data class NonDefaultTargetConfigurationIR(
|
||||
val variableName: String,
|
||||
override val targetName: String,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : TargetConfigurationIR {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>): NonDefaultTargetConfigurationIR =
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>): NonDefaultTargetConfigurationIR =
|
||||
copy(irs = irs)
|
||||
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
@@ -78,9 +79,9 @@ data class NonDefaultTargetConfigurationIR(
|
||||
|
||||
data class CompilationIR(
|
||||
val name: String,
|
||||
override val irs: List<BuildSystemIR>
|
||||
override val irs: PersistentList<BuildSystemIR>
|
||||
) : MultiplatformIR, IrsOwner {
|
||||
override fun withReplacedIrs(irs: List<BuildSystemIR>) = copy(irs = irs)
|
||||
override fun withReplacedIrs(irs: PersistentList<BuildSystemIR>) = copy(irs = irs)
|
||||
override fun GradlePrinter.renderGradle() {
|
||||
getting(name, "compilations") { irs.listNl() }
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators
|
||||
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.context.ReadingContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.buildList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
|
||||
@@ -69,7 +70,7 @@ object NativeForCurrentSystemTarget : NativeTargetConfigurator, SingleCoexistenc
|
||||
+NonDefaultTargetConfigurationIR(
|
||||
variableName = variableName,
|
||||
targetName = moduleName,
|
||||
irs = createInnerTargetIrs(module)
|
||||
irs = createInnerTargetIrs(module).toPersistentList()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -1,7 +1,9 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators
|
||||
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.context.ReadingContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.buildList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.buildPersistenceList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.*
|
||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.DefaultTargetConfigurationIR
|
||||
@@ -41,7 +43,7 @@ interface SimpleTargetConfigurator : TargetConfigurator {
|
||||
override fun ReadingContext.createTargetIrs(module: Module): List<BuildSystemIR> = buildList {
|
||||
+DefaultTargetConfigurationIR(
|
||||
module.createTargetAccessIr(moduleSubType),
|
||||
createInnerTargetIrs(module)
|
||||
createInnerTargetIrs(module).toPersistentList()
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -65,7 +67,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWit
|
||||
override fun ReadingContext.createTargetIrs(module: Module): List<BuildSystemIR> = buildList {
|
||||
+DefaultTargetConfigurationIR(
|
||||
module.createTargetAccessIr(ModuleSubType.js),
|
||||
buildList {
|
||||
buildPersistenceList {
|
||||
+RawGradleIR {
|
||||
sectionCall("browser") {}
|
||||
}
|
||||
@@ -83,7 +85,7 @@ object JsNodeTargetConfigurator : JsTargetConfigurator {
|
||||
override fun ReadingContext.createTargetIrs(module: Module): List<BuildSystemIR> = buildList {
|
||||
+DefaultTargetConfigurationIR(
|
||||
module.createTargetAccessIr(ModuleSubType.js),
|
||||
buildList {
|
||||
buildPersistenceList {
|
||||
+RawGradleIR {
|
||||
sectionCall("nodejs") {}
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.plugins
|
||||
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.Context
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.JpsPlugin
|
||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.MavenPlugin
|
||||
@@ -11,7 +12,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.*
|
||||
|
||||
object Plugins {
|
||||
val allPlugins = { context: Context ->
|
||||
listOf(
|
||||
persistentListOf(
|
||||
StructurePlugin(context),
|
||||
|
||||
GroovyDslPlugin(context),
|
||||
|
||||
+4
-1
@@ -126,7 +126,10 @@ abstract class GradlePlugin(context: Context) : BuildSystemPlugin(context) {
|
||||
val settingsGradleIR = SettingsGradleFileIR(
|
||||
StructurePlugin::name.settingValue,
|
||||
allModulesPaths.map { path -> path.joinToString(separator = "") { ":$it" } },
|
||||
repositories + GradlePlugin::settingsGradleFileIRs.propertyValue
|
||||
buildPersistenceList {
|
||||
+repositories
|
||||
+GradlePlugin::settingsGradleFileIRs.propertyValue
|
||||
}
|
||||
)
|
||||
val buildFileText = createBuildFile().printBuildFile { settingsGradleIR.render(this) }
|
||||
service<FileSystemWizardService>().createFile(
|
||||
|
||||
+12
-10
@@ -1,5 +1,7 @@
|
||||
package org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin
|
||||
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.context.ReadingContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.context.WritingContext
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||
@@ -79,9 +81,9 @@ class ModulesToIRsConverter(
|
||||
BuildFileIR(
|
||||
projectName,
|
||||
projectPath,
|
||||
RootFileModuleStructureIR(emptyList()),
|
||||
RootFileModuleStructureIR(persistentListOf()),
|
||||
pomIr,
|
||||
rootBuildFileIrs
|
||||
rootBuildFileIrs.toPersistentList()
|
||||
)
|
||||
}
|
||||
|
||||
@@ -102,7 +104,7 @@ class ModulesToIRsConverter(
|
||||
val modulePath = calculatePathForModule(module, state.parentPath)
|
||||
writingContext.mutateProjectStructureByModuleConfigurator(module, modulePath)
|
||||
val configurator = module.configurator
|
||||
val dependenciesIRs = buildList<BuildSystemIR> {
|
||||
val dependenciesIRs = buildPersistenceList<BuildSystemIR> {
|
||||
+module.sourcesets.flatMap { sourceset ->
|
||||
sourceset.dependencies.map { it.toIR(sourceset.sourcesetType.toDependencyType()) }
|
||||
}
|
||||
@@ -129,7 +131,7 @@ class ModulesToIRsConverter(
|
||||
SingleplatformSourcesetIR(
|
||||
sourceset.sourcesetType,
|
||||
modulePath / Defaults.SRC_DIR / sourceset.sourcesetType.name,
|
||||
sourceset.dependencies.map { it.toIR(sourceset.sourcesetType.toDependencyType()) },
|
||||
sourceset.dependencies.map { it.toIR(sourceset.sourcesetType.toDependencyType()) }.toPersistentList(),
|
||||
sourceset
|
||||
)
|
||||
}
|
||||
@@ -139,7 +141,7 @@ class ModulesToIRsConverter(
|
||||
modulePath,
|
||||
SingleplatformModulesStructureWithSingleModuleIR(
|
||||
moduleIr,
|
||||
emptyList()
|
||||
persistentListOf()
|
||||
),
|
||||
pomIr.copy(artifactId = module.name),
|
||||
createBuildFileIRs(module, state)
|
||||
@@ -173,10 +175,10 @@ class ModulesToIRsConverter(
|
||||
MultiplatformModulesStructureIR(
|
||||
targetIrs,
|
||||
targetModuleIrs,
|
||||
emptyList()
|
||||
persistentListOf()
|
||||
),
|
||||
pomIr,
|
||||
buildList {
|
||||
buildPersistenceList {
|
||||
+createBuildFileIRs(module, state)
|
||||
module.subModules.forEach { +createBuildFileIRs(it, state) }
|
||||
}
|
||||
@@ -206,14 +208,14 @@ class ModulesToIRsConverter(
|
||||
sourceset.sourcesetType,
|
||||
modulePath / Defaults.SRC_DIR / sourcesetName,
|
||||
target.name,
|
||||
sourcesetIrs,
|
||||
sourcesetIrs.toPersistentList(),
|
||||
sourceset
|
||||
)
|
||||
}
|
||||
return MultiplatformModuleIR(
|
||||
target.name,
|
||||
modulePath,
|
||||
with(target.configurator) { createModuleIRs(this@createTargetModule, data, target) },
|
||||
with(target.configurator) { createModuleIRs(this@createTargetModule, data, target) }.toPersistentList(),
|
||||
target.template,
|
||||
target,
|
||||
sourcesetss
|
||||
@@ -236,7 +238,7 @@ class ModulesToIRsConverter(
|
||||
private fun ReadingContext.createBuildFileIRs(
|
||||
module: Module,
|
||||
state: ModulesToIrsState
|
||||
) = buildList<BuildSystemIR> {
|
||||
) = buildPersistenceList<BuildSystemIR> {
|
||||
val kotlinPlugin = module.configurator.createKotlinPluginIR(data, module)
|
||||
?.let { plugin ->
|
||||
// do not print version for non-root modules for gradle
|
||||
|
||||
Reference in New Issue
Block a user