diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index 8d62d31d362..99faf0ca2ee 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -6,9 +6,8 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.core.service.BuildSystemAvailabilityWizardService import org.jetbrains.kotlin.tools.projectWizard.core.service.FileSystemWizardService import org.jetbrains.kotlin.tools.projectWizard.core.service.ProjectImportingWizardService -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildFileIR -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.MultiplatformModulesStructureIR -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.render +import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* +import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin @@ -17,6 +16,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.printBuildFile import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles abstract class BuildSystemPlugin(context: Context) : Plugin(context) { val type by enumSetting("Build System", GenerationPhase.FIRST_STEP) { @@ -38,6 +38,28 @@ abstract class BuildSystemPlugin(context: Context) : Plugin(context) { val buildFiles by property>(emptyList()) + val takeRepositoriesFromDependencies by pipelineTask(GenerationPhase.PROJECT_GENERATION) { + runBefore(BuildSystemPlugin::createModules) + runAfter(KotlinPlugin::createModules) + + withAction { + updateBuildFiles { buildFile -> + val dependenciesOfModule = buildList { + buildFile.modules.modules.forEach { module -> + if (module is SingleplatformModuleIR) module.sourcesets.forEach { sourceset -> + +sourceset.irs.filterIsInstance() + } + +module.irs.filterIsInstance() + } + } + val repositoriesToAdd = dependenciesOfModule.mapNotNull { dependency -> + dependency.artifact.safeAs()?.repository?.let(::RepositoryIR) + } + buildFile.withIrs(repositoriesToAdd).asSuccess() + } + } + } + val createModules by pipelineTask(GenerationPhase.PROJECT_GENERATION) { runAfter(StructurePlugin::createProjectDir) withAction {