[Pill] Support production-on-test dependencies

This commit is contained in:
Yan Zhulanow
2023-12-04 20:35:31 +09:00
committed by Space Team
parent a7f6029076
commit 7129bcc2b1
4 changed files with 6 additions and 7 deletions
@@ -335,7 +335,7 @@ class JpsCompatiblePluginTasks(
for (path in paths) { for (path in paths) {
val module = project.modules.find { it.path == path } val module = project.modules.find { it.path == path }
if (module != null) { if (module != null) {
result += PDependency.Module(module.name) result += PDependency.Module(module)
result += module.embeddedDependencies.flatMap { invoke(project, it) } result += module.embeddedDependencies.flatMap { invoke(project, it) }
continue continue
} }
@@ -149,7 +149,7 @@ class ModelParser(private val modulePrefix: String, private val globalExcludedDi
var orderRoots = parseDependencies(project, sourceSet) var orderRoots = parseDependencies(project, sourceSet)
if (productionModule != null) { if (productionModule != null) {
val productionModuleDependency = PDependency.Module(productionModule.name) val productionModuleDependency = PDependency.Module(productionModule)
orderRoots = listOf(POrderRoot(productionModuleDependency, Scope.COMPILE, true)) + orderRoots orderRoots = listOf(POrderRoot(productionModuleDependency, Scope.COMPILE, true)) + orderRoots
} }
@@ -8,14 +8,13 @@ package org.jetbrains.kotlin.pill.model
data class POrderRoot( data class POrderRoot(
val dependency: PDependency, val dependency: PDependency,
val scope: Scope, val scope: Scope,
val isExported: Boolean = false, val isExported: Boolean = false
val isProductionOnTestDependency: Boolean = false
) { ) {
enum class Scope { COMPILE, TEST, RUNTIME, PROVIDED } enum class Scope { COMPILE, TEST, RUNTIME, PROVIDED }
} }
sealed class PDependency { sealed class PDependency {
data class Module(val name: String) : PDependency() data class Module(val module: PModule) : PDependency()
data class Library(val name: String) : PDependency() data class Library(val name: String) : PDependency()
data class ModuleLibrary(val library: PLibrary) : PDependency() data class ModuleLibrary(val library: PLibrary) : PDependency()
} }
+2 -2
View File
@@ -146,7 +146,7 @@ private fun renderModule(project: PProject, module: PModule) = PFile(
) )
is PDependency.Module -> mutableListOf( is PDependency.Module -> mutableListOf(
"type" to "module", "type" to "module",
"module-name" to dependency.name "module-name" to dependency.module.name
) )
is PDependency.Library -> mutableListOf( is PDependency.Library -> mutableListOf(
"type" to "library", "type" to "library",
@@ -159,7 +159,7 @@ private fun renderModule(project: PProject, module: PModule) = PFile(
args.add(1, "scope" to orderRoot.scope.toString()) args.add(1, "scope" to orderRoot.scope.toString())
} }
if (dependency is PDependency.Module && orderRoot.isProductionOnTestDependency) { if (!module.forTests && dependency is PDependency.Module && dependency.module.forTests) {
args += ("production-on-test" to "") args += ("production-on-test" to "")
} }