From 346ae33a76047c3b954162ca759dcd0978c38e93 Mon Sep 17 00:00:00 2001 From: Evgenii Ilichev Date: Thu, 21 Mar 2024 18:23:15 +0000 Subject: [PATCH] [localization] localize only required modules Merge-request: IJ-MR-129381 Merged-by: Evgenii Ilichev GitOrigin-RevId: bc33ebfcfceb5d1869d1499d2ba5bc19fd46f858 --- .../intellij/build/impl/BuildTasksImpl.kt | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt index 853e87d96bb1..0e5d5635b561 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/BuildTasksImpl.kt @@ -82,13 +82,15 @@ class BuildTasksImpl(private val context: BuildContextImpl) : BuildTasks { val pluginsToPublish = getPluginLayoutsByJpsModuleNames(mainPluginModules, context.productProperties.productLayout) val distState = createDistributionBuilderState(pluginsToPublish = pluginsToPublish, context = context) val compilationTasks = CompilationTasks.create(context = context) - compilationTasks.compileModules( - moduleNames = distState.getModulesForPluginsToPublish() + listOf("intellij.idea.community.build.tasks", - "intellij.platform.images.build", - "intellij.tools.launcherGenerator"), - ) + distState.getModulesForPluginsToPublish() + listOf( + "intellij.idea.community.build.tasks", + "intellij.platform.images.build", + "intellij.tools.launcherGenerator" + ).let { + compilationTasks.compileModules(moduleNames = it) + localizeModules(context, moduleNames = it) + } - localizeModules(context) buildProjectArtifacts( platform = distState.platform, enabledPluginModules = getEnabledPluginModules(pluginsToPublish = distState.pluginsToPublish, @@ -168,10 +170,10 @@ suspend fun generateProjectStructureMapping(targetFile: Path, context: BuildCont ) } -private suspend fun localizeModules(context: BuildContext) { +private suspend fun localizeModules(context: BuildContext, moduleNames: Collection = emptyList()) { val localizationDir = getLocalizationDir(context) if (localizationDir != null) { - val modules = context.project.modules + val modules = if (moduleNames.isEmpty()) context.project.modules else moduleNames.mapNotNull { context.findModule(it) } spanBuilder("bundle localizations").setAttribute("moduleCount", modules.size.toLong()).useWithScope { modules.map { module -> async { @@ -571,7 +573,10 @@ private suspend fun compileModulesForDistribution(context: BuildContext): Distri val productLayout = context.productProperties.productLayout val compilationTasks = CompilationTasks.create(context) - compilationTasks.compileModules(collectModulesToCompileForDistribution(context)) + collectModulesToCompileForDistribution(context).let { + compilationTasks.compileModules(moduleNames = it) + localizeModules(context, moduleNames = it) + } val pluginsToPublish = getPluginLayoutsByJpsModuleNames(modules = productLayout.pluginModulesToPublish, productLayout = productLayout) filterPluginsToPublish(pluginsToPublish, context) @@ -591,7 +596,10 @@ private suspend fun compileModulesForDistribution(context: BuildContext): Distri else { val providedModuleFile = context.paths.artifactDir.resolve("${context.applicationInfo.productCode}-builtinModules.json") val platform = createPlatformLayout(pluginsToPublish, context) - compilationTasks.compileModules(moduleNames = getModulesForPluginsToPublish(platform, pluginsToPublish)) + getModulesForPluginsToPublish(platform, pluginsToPublish).let { + compilationTasks.compileModules(moduleNames = it) + localizeModules(context, moduleNames = it) + } val builtinModuleData = spanBuilder("build provided module list").useWithScope { val ideClasspath = createIdeClassPath(platform = platform, context = context) @@ -616,7 +624,6 @@ private suspend fun compileModulesForDistribution(context: BuildContext): Distri context.notifyArtifactBuilt(artifactPath = providedModuleFile) if (!productLayout.buildAllCompatiblePlugins) { val distState = DistributionBuilderState(platform = platform, pluginsToPublish = pluginsToPublish, context = context) - localizeModules(context) buildProjectArtifacts(platform = distState.platform, enabledPluginModules = enabledPluginModules, compilationTasks = compilationTasks, @@ -638,9 +645,10 @@ private suspend fun compileModulesForDistribution(context: BuildContext): Distri context = context, ) val distState = DistributionBuilderState(platform = platform, pluginsToPublish = pluginsToPublish, context = context) - compilationTasks.compileModules(distState.getModulesForPluginsToPublish()) - - localizeModules(context) + distState.getModulesForPluginsToPublish().let { + compilationTasks.compileModules(moduleNames = it) + localizeModules(context, moduleNames = it) + } buildProjectArtifacts(platform = distState.platform, enabledPluginModules = enabledPluginModules, compilationTasks = compilationTasks,