[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) {
val module = project.modules.find { it.path == path }
if (module != null) {
result += PDependency.Module(module.name)
result += PDependency.Module(module)
result += module.embeddedDependencies.flatMap { invoke(project, it) }
continue
}
@@ -149,7 +149,7 @@ class ModelParser(private val modulePrefix: String, private val globalExcludedDi
var orderRoots = parseDependencies(project, sourceSet)
if (productionModule != null) {
val productionModuleDependency = PDependency.Module(productionModule.name)
val productionModuleDependency = PDependency.Module(productionModule)
orderRoots = listOf(POrderRoot(productionModuleDependency, Scope.COMPILE, true)) + orderRoots
}
@@ -8,14 +8,13 @@ package org.jetbrains.kotlin.pill.model
data class POrderRoot(
val dependency: PDependency,
val scope: Scope,
val isExported: Boolean = false,
val isProductionOnTestDependency: Boolean = false
val isExported: Boolean = false
) {
enum class Scope { COMPILE, TEST, RUNTIME, PROVIDED }
}
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 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(
"type" to "module",
"module-name" to dependency.name
"module-name" to dependency.module.name
)
is PDependency.Library -> mutableListOf(
"type" to "library",
@@ -159,7 +159,7 @@ private fun renderModule(project: PProject, module: PModule) = PFile(
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 "")
}