From 1a3317ae2b1ff1a5c79f66ef54f154985bcf86d1 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 22 Nov 2017 21:20:29 +0900 Subject: [PATCH] Kapt: Attach generated classes directory as library source (KT-19823) This may seem like a magic, but actually it's deadly simple. GradleProjectResolver.mergeLibraryAndModuleDependencyData() tries to find a better substitution for the absolute BINARY paths, but actually makes things worse in our case. GradleProjectResolver checks if the provided path is in the Gradle project output path list, and if the answer is yes, then it replaces our path to a Gradle Project (or a module in JPS terminology) dependency. --- .../jetbrains/kotlin/kapt/idea/KaptProjectResolverExtension.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptProjectResolverExtension.kt b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptProjectResolverExtension.kt index 0ce1c432c58..ab389aed009 100644 --- a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptProjectResolverExtension.kt +++ b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptProjectResolverExtension.kt @@ -94,7 +94,7 @@ class KaptProjectResolverExtension : AbstractProjectResolverExtension() { sourceSet.generatedKotlinSourcesDirFile?.let { addSourceSet(it.absolutePath, sourceType) } sourceSet.generatedClassesDirFile?.let { generatedClassesDir -> - val libraryData = LibraryData(GRADLE_SYSTEM_ID, "") + val libraryData = LibraryData(GRADLE_SYSTEM_ID, "kaptGeneratedClasses") libraryData.addPath(LibraryPathType.BINARY, generatedClassesDir.absolutePath) val libraryDependencyData = LibraryDependencyData(sourceSetDataNode.data, libraryData, LibraryLevel.MODULE) sourceSetDataNode.createChild(ProjectKeys.LIBRARY_DEPENDENCY, libraryDependencyData)