[Pill] Support production-on-test dependencies
This commit is contained in:
@@ -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()
|
||||
}
|
||||
@@ -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 "")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user