Pill: Support module prefixes

This commit is contained in:
Yan Zhulanow
2020-09-04 02:36:45 +09:00
parent a561fb85ad
commit 6ff68311c1
2 changed files with 9 additions and 8 deletions
@@ -86,7 +86,8 @@ class JpsCompatiblePluginTasks(private val rootProject: Project, private val pla
rootProject.logger.lifecycle("Pill: Setting up project for the '${variant.name.toLowerCase()}' variant...")
val parserContext = ParserContext(variant)
val modulePrefix = System.getProperty("pill.module.prefix", "")
val parserContext = ParserContext(variant, modulePrefix)
val dependencyPatcher = DependencyPatcher(rootProject)
val dependencyMappers = listOf(dependencyPatcher, ::attachPlatformSources, ::attachAsmSources)
+7 -7
View File
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.pill.PSourceRoot.*
import org.jetbrains.kotlin.pill.PillExtensionMirror.*
import java.io.File
class ParserContext(val variant: Variant)
class ParserContext(val variant: Variant, val modulePrefix: String)
typealias OutputDir = String
typealias GradleProjectPath = String
@@ -107,7 +107,7 @@ data class PLibrary(
}
}
fun parse(project: Project, context: ParserContext): PProject {
fun parse(project: Project, context: ParserContext): PProject = with(context) {
if (project != project.rootProject) {
error("$project is not a root project")
}
@@ -186,11 +186,11 @@ private fun makePath(project: Project, sourceSetName: String): GradleProjectPath
return project.path + "/" + sourceSetName
}
private fun parseModules(project: Project, excludedProjects: List<Project>): List<PModule> {
private fun ParserContext.parseModules(project: Project, excludedProjects: List<Project>): List<PModule> {
val modules = mutableListOf<PModule>()
fun getModuleFile(name: String): File {
val relativePath = File(project.projectDir, "$name.iml").toRelativeString(project.rootProject.projectDir)
val relativePath = File(project.projectDir, "$modulePrefix$name.iml").toRelativeString(project.rootProject.projectDir)
return File(project.rootProject.projectDir, ".idea/modules/$relativePath")
}
@@ -226,7 +226,7 @@ private fun parseModules(project: Project, excludedProjects: List<Project>): Lis
val name = project.pillModuleName + "." + sourceSet.name
modules += PModule(
name = name,
name = modulePrefix + name,
path = makePath(project, sourceSet.name),
forTests = sourceSet.forTests,
rootDirectory = sourceRoots.first().directory,
@@ -240,12 +240,12 @@ private fun parseModules(project: Project, excludedProjects: List<Project>): Lis
}
val mainModuleFileRelativePath = when (project) {
project.rootProject -> File(project.rootProject.projectDir, project.rootProject.name + ".iml")
project.rootProject -> File(project.rootProject.projectDir, modulePrefix + project.rootProject.name + ".iml")
else -> getModuleFile(project.pillModuleName)
}
modules += PModule(
name = project.pillModuleName,
name = modulePrefix + project.pillModuleName,
path = project.path,
forTests = false,
rootDirectory = project.projectDir,