From e457877aa4acb0d4ca091bfeb803a63bc4a8a3a8 Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Fri, 2 May 2025 10:48:16 +0200 Subject: [PATCH] [build scripts] take into account ContentModuleFilter when building the core plugin as well (IJPL-186408) GitOrigin-RevId: d409063711a90043a04901182eb65f4bd1bb2f07 --- .../jetbrains/intellij/build/impl/PlatformModules.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt index fcd787cbf2a6..7fb7fd185c81 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/PlatformModules.kt @@ -634,10 +634,19 @@ private fun getModuleDescriptor(moduleName: String, jpsModuleName: String, xIncl private suspend fun collectAndEmbedProductModules(root: Element, xIncludePathResolver: XIncludePathResolver, context: BuildContext): Set { val frontendModuleFilter = context.getFrontendModuleFilter() + val contentModuleFilter = context.getContentModuleFilter() val result = LinkedHashSet() - for (moduleElement in (root.getChildren("content").asSequence().flatMap { it.getChildren("module") })) { + val moduleElements = root.getChildren("content").flatMap { it.getChildren("module") } + for (moduleElement in moduleElements) { val moduleName = moduleElement.getAttributeValue("name") ?: continue val loadingRule = moduleElement.getAttributeValue("loading") + val dependencyHelper = (context as BuildContextImpl).jarPackagerDependencyHelper + if (dependencyHelper.isOptionalLoadingRule(loadingRule) && !contentModuleFilter.isOptionalModuleIncluded(moduleName, pluginMainModuleName = null)) { + Span.current().addEvent("Tag for module '$moduleName' is removed from the core plugin by $contentModuleFilter") + moduleElement.parent.removeContent(moduleElement) + continue + } + val relativeOutFile = if (loadingRule == "embedded") getProductModuleJarName(moduleName, context, frontendModuleFilter) else "modules/$moduleName.jar" result.add(ModuleItem(moduleName = moduleName, relativeOutputFile = relativeOutFile, reason = ModuleIncludeReasons.PRODUCT_MODULES)) PRODUCT_MODULE_IMPL_COMPOSITION.get(moduleName)?.let {