From cd4858d24aa46c32f810d1f5559311b09aeee192 Mon Sep 17 00:00:00 2001 From: Yuriy Artamonov Date: Thu, 13 Nov 2025 14:56:42 +0100 Subject: [PATCH] [compose] IJPL-206048 Gradle failures on navigation to Jewel sources GitOrigin-RevId: 27f465107bfba69246d4af1d2c906b3d69a44b7f --- .../intellij/build/moduleSourceArchive.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/moduleSourceArchive.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/moduleSourceArchive.kt index 6c9788fe2387..380333031f33 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/moduleSourceArchive.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/moduleSourceArchive.kt @@ -23,13 +23,17 @@ import org.jetbrains.jps.model.jarRepository.JpsRemoteRepositoryService import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.jps.model.java.JavaSourceRootType import org.jetbrains.jps.model.java.JpsJavaExtensionService -import org.jetbrains.jps.model.library.* +import org.jetbrains.jps.model.library.JpsLibrary +import org.jetbrains.jps.model.library.JpsMavenRepositoryLibraryDescriptor +import org.jetbrains.jps.model.library.JpsOrderRootType +import org.jetbrains.jps.model.library.JpsRepositoryLibraryType +import org.jetbrains.jps.model.library.JpsTypedLibrary import org.jetbrains.jps.model.serialization.JpsMavenSettings.getMavenRepositoryPath import org.jetbrains.jps.model.serialization.JpsModelSerializationDataService import org.jetbrains.jps.util.JpsPathUtil import java.nio.file.Files import java.nio.file.Path -import java.util.* +import java.util.EnumSet import kotlin.io.path.ExperimentalPathApi import kotlin.io.path.walk @@ -56,7 +60,7 @@ suspend fun zipSourcesOfModules(modules: List, targetFile: Path, include val module = context.findRequiredModule(moduleName) // We pack sources of libraries which are included in compilation classpath for platform API modules. // This way we'll get source files of all libraries useful for plugin developers, and the size of the archive will be reasonable. - if (moduleName.startsWith("intellij.platform.") && context.findModule("$moduleName.impl") != null) { + if (isRelevantLibrarySourcesModule(moduleName, context)) { val libraries = JpsJavaExtensionService.dependencies(module).productionOnly().compileOnly().recursivelyExportedOnly().libraries includedLibraries.addAll(libraries) libraries.mapTo(debugMapping) { "${it.name} for $moduleName" } @@ -133,6 +137,11 @@ suspend fun zipSourcesOfModules(modules: List, targetFile: Path, include } } +private fun isRelevantLibrarySourcesModule(moduleName: String, context: BuildContext): Boolean { + return (moduleName.startsWith("intellij.platform.") && context.findModule("$moduleName.impl") != null + || moduleName.startsWith("intellij.libraries.compose.")) +} + @OptIn(ExperimentalPathApi::class) private inline fun filterSourceFilesOnly(name: String, context: BuildContext, configure: (Path) -> Unit): Path { val sourceFiles = Files.createTempDirectory(context.paths.tempDir, name)