From 582db8d659877cd2c482d485e0ba19913dba3a6a Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Fri, 31 Jul 2020 14:01:49 +0200 Subject: Re/de-shadow kotlin-compiler artifact --- .run/dolovov_ -unresolved-types.run.xml | 2 +- gradle.properties | 7 +-- .../projects/it-multiplatform-0/build.gradle.kts | 9 +++- .../src/commonMain/kotlin/it/mpp0/coroutines.kt | 5 ++ .../src/jsMain/kotlin/it/mpp0/runBlocking.kt | 7 +++ .../src/jvmMain/kotlin/it/mpp0/runBlocking.kt | 7 +++ .../src/linuxMain/kotlin/it/mpp0/runBlocking.kt | 13 +++++ .../src/macosMain/kotlin/it/mpp0/runBlocking.kt | 7 +++ kotlin-analysis/build.gradle.kts | 6 +-- .../compiler-dependency/build.gradle.kts | 28 ++++++++++ kotlin-analysis/dependencies/build.gradle.kts | 56 -------------------- .../intellij-dependency/build.gradle.kts | 60 ++++++++++++++++++++++ .../dokka/analysis/AnalysisEnvironment.kt | 12 ++--- .../dokka/analysis/CoreProjectFileIndex.kt | 36 ++++++++++++- settings.gradle.kts | 3 +- 15 files changed, 180 insertions(+), 78 deletions(-) create mode 100644 integration-tests/gradle/projects/it-multiplatform-0/src/commonMain/kotlin/it/mpp0/coroutines.kt create mode 100644 integration-tests/gradle/projects/it-multiplatform-0/src/jsMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 integration-tests/gradle/projects/it-multiplatform-0/src/jvmMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 integration-tests/gradle/projects/it-multiplatform-0/src/linuxMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 integration-tests/gradle/projects/it-multiplatform-0/src/macosMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 kotlin-analysis/compiler-dependency/build.gradle.kts delete mode 100644 kotlin-analysis/dependencies/build.gradle.kts create mode 100644 kotlin-analysis/intellij-dependency/build.gradle.kts diff --git a/.run/dolovov_ -unresolved-types.run.xml b/.run/dolovov_ -unresolved-types.run.xml index 3f5d341c..8fd6ef70 100644 --- a/.run/dolovov_ -unresolved-types.run.xml +++ b/.run/dolovov_ -unresolved-types.run.xml @@ -4,7 +4,7 @@ diff --git a/gradle.properties b/gradle.properties index 0ddc85f7..9fda2985 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,18 +2,15 @@ dokka_version_base=1.4.0-rc dokka_publication_channel=dokka dokka_integration_test_parallelism=2 - # Versions kotlin_version=1.4.0-rc -kotlin_plugin_version=1.4-M3-release-207 -coroutines_version=1.3.7-1.4-M3 +coroutines_version=1.3.8-1.4.0-rc kotlinx_html_version=0.7.1-1.4-M3 +kotlin_plugin_version=1.4.0-rc-release-221 idea_version=193.6494.35 language_version=1.4 - # Code style kotlin.code.style=official - # Gradle settings org.gradle.jvmargs=-Xmx4g org.gradle.parallel=true diff --git a/integration-tests/gradle/projects/it-multiplatform-0/build.gradle.kts b/integration-tests/gradle/projects/it-multiplatform-0/build.gradle.kts index 247e4c15..aded7b15 100644 --- a/integration-tests/gradle/projects/it-multiplatform-0/build.gradle.kts +++ b/integration-tests/gradle/projects/it-multiplatform-0/build.gradle.kts @@ -11,7 +11,13 @@ kotlin { jvm() linuxX64("linux") macosX64("macos") - js() + sourceSets { + named("commonMain") { + dependencies { + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8-1.4.0-rc") + } + } + } } tasks.withType { @@ -20,6 +26,5 @@ tasks.withType { create("jvmMain") create("linuxMain") create("macosMain") - create("jsMain") } } diff --git a/integration-tests/gradle/projects/it-multiplatform-0/src/commonMain/kotlin/it/mpp0/coroutines.kt b/integration-tests/gradle/projects/it-multiplatform-0/src/commonMain/kotlin/it/mpp0/coroutines.kt new file mode 100644 index 00000000..8eee326f --- /dev/null +++ b/integration-tests/gradle/projects/it-multiplatform-0/src/commonMain/kotlin/it/mpp0/coroutines.kt @@ -0,0 +1,5 @@ +package it.mpp0 + +import kotlinx.coroutines.CoroutineScope + +expect fun CoroutineScope.runBlocking(block: suspend () -> T) : T diff --git a/integration-tests/gradle/projects/it-multiplatform-0/src/jsMain/kotlin/it/mpp0/runBlocking.kt b/integration-tests/gradle/projects/it-multiplatform-0/src/jsMain/kotlin/it/mpp0/runBlocking.kt new file mode 100644 index 00000000..03b3b0ea --- /dev/null +++ b/integration-tests/gradle/projects/it-multiplatform-0/src/jsMain/kotlin/it/mpp0/runBlocking.kt @@ -0,0 +1,7 @@ +package it.mpp0 + +import kotlinx.coroutines.CoroutineScope + +actual fun CoroutineScope.runBlocking(block: suspend () -> T): T { + TODO("Not yet implemented") +} diff --git a/integration-tests/gradle/projects/it-multiplatform-0/src/jvmMain/kotlin/it/mpp0/runBlocking.kt b/integration-tests/gradle/projects/it-multiplatform-0/src/jvmMain/kotlin/it/mpp0/runBlocking.kt new file mode 100644 index 00000000..03b3b0ea --- /dev/null +++ b/integration-tests/gradle/projects/it-multiplatform-0/src/jvmMain/kotlin/it/mpp0/runBlocking.kt @@ -0,0 +1,7 @@ +package it.mpp0 + +import kotlinx.coroutines.CoroutineScope + +actual fun CoroutineScope.runBlocking(block: suspend () -> T): T { + TODO("Not yet implemented") +} diff --git a/integration-tests/gradle/projects/it-multiplatform-0/src/linuxMain/kotlin/it/mpp0/runBlocking.kt b/integration-tests/gradle/projects/it-multiplatform-0/src/linuxMain/kotlin/it/mpp0/runBlocking.kt new file mode 100644 index 00000000..b56fb80a --- /dev/null +++ b/integration-tests/gradle/projects/it-multiplatform-0/src/linuxMain/kotlin/it/mpp0/runBlocking.kt @@ -0,0 +1,13 @@ +package it.mpp0 + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.async + +actual fun CoroutineScope.runBlocking(block: suspend () -> T): T { + TODO("Not yet implemented") +} + +fun CoroutineScope.customAsync(block: suspend () -> T): Deferred { + return async { block() } +} diff --git a/integration-tests/gradle/projects/it-multiplatform-0/src/macosMain/kotlin/it/mpp0/runBlocking.kt b/integration-tests/gradle/projects/it-multiplatform-0/src/macosMain/kotlin/it/mpp0/runBlocking.kt new file mode 100644 index 00000000..03b3b0ea --- /dev/null +++ b/integration-tests/gradle/projects/it-multiplatform-0/src/macosMain/kotlin/it/mpp0/runBlocking.kt @@ -0,0 +1,7 @@ +package it.mpp0 + +import kotlinx.coroutines.CoroutineScope + +actual fun CoroutineScope.runBlocking(block: suspend () -> T): T { + TODO("Not yet implemented") +} diff --git a/kotlin-analysis/build.gradle.kts b/kotlin-analysis/build.gradle.kts index 8458ecc4..9f1588f3 100644 --- a/kotlin-analysis/build.gradle.kts +++ b/kotlin-analysis/build.gradle.kts @@ -8,10 +8,8 @@ plugins { dependencies { compileOnly(project(":core")) - - val kotlin_version: String by project - api("org.jetbrains.kotlin:kotlin-compiler:$kotlin_version") - api(project(":kotlin-analysis:dependencies", configuration = "shadow")) + api(project("intellij-dependency", configuration = "shadow")) + api(project("compiler-dependency", configuration = "shadow")) } registerDokkaArtifactPublication("dokkaAnalysis") { diff --git a/kotlin-analysis/compiler-dependency/build.gradle.kts b/kotlin-analysis/compiler-dependency/build.gradle.kts new file mode 100644 index 00000000..4d099a70 --- /dev/null +++ b/kotlin-analysis/compiler-dependency/build.gradle.kts @@ -0,0 +1,28 @@ +import org.jetbrains.DokkaPublicationBuilder.Component.Shadow +import org.jetbrains.registerDokkaArtifactPublication + +plugins { + id("com.github.johnrengelman.shadow") + `maven-publish` + id("com.jfrog.bintray") +} + +dependencies { + val kotlin_version: String by project + api("org.jetbrains.kotlin:kotlin-compiler:$kotlin_version") + +} + +tasks { + shadowJar { + val dokka_version: String by project + archiveFileName.set("dokka-kotlin-analysis-compiler-$dokka_version.jar") + archiveClassifier.set("") + exclude("**/intellij**") + } +} + +registerDokkaArtifactPublication("kotlinAnalysisCompiler") { + artifactId = "kotlin-analysis-compiler" + component = Shadow +} diff --git a/kotlin-analysis/dependencies/build.gradle.kts b/kotlin-analysis/dependencies/build.gradle.kts deleted file mode 100644 index a12e697d..00000000 --- a/kotlin-analysis/dependencies/build.gradle.kts +++ /dev/null @@ -1,56 +0,0 @@ -import org.jetbrains.DokkaPublicationBuilder.Component.Shadow -import org.jetbrains.registerDokkaArtifactPublication - -plugins { - id("com.github.johnrengelman.shadow") - `maven-publish` - id("com.jfrog.bintray") -} - -repositories { - maven(url = "https://www.jetbrains.com/intellij-repository/snapshots") - maven(url = "https://www.jetbrains.com/intellij-repository/releases") - maven(url = "https://kotlin.bintray.com/kotlin-plugin") -} - -val intellijCore: Configuration by configurations.creating - -fun intellijCoreAnalysis() = zipTree(intellijCore.singleFile).matching { - include("intellij-core-analysis.jar") -} - -dependencies { - val kotlin_plugin_version: String by project - api("org.jetbrains.kotlin:ide-common-ij193:$kotlin_plugin_version") - api("org.jetbrains.kotlin:kotlin-plugin-ij193:$kotlin_plugin_version") { - //TODO: parametrize ij version after 1.3.70 - isTransitive = false - } - - val idea_version: String by project - intellijCore("com.jetbrains.intellij.idea:intellij-core:$idea_version") - implementation(intellijCoreAnalysis()) -} - -tasks { - shadowJar { - val dokka_version: String by project - archiveFileName.set("dokka-kotlin-analysis-dependencies-$dokka_version.jar") - archiveClassifier.set("") - - exclude("colorScheme/**") - exclude("fileTemplates/**") - exclude("inspectionDescriptions/**") - exclude("intentionDescriptions/**") - exclude("tips/**") - exclude("messages/**") - exclude("src/**") - exclude("**/*.kotlin_metadata") - exclude("**/*.kotlin_builtins") - } -} - -registerDokkaArtifactPublication("kotlinAnalysisDependencies"){ - artifactId = "kotlin-analysis-dependencies" - component = Shadow -} diff --git a/kotlin-analysis/intellij-dependency/build.gradle.kts b/kotlin-analysis/intellij-dependency/build.gradle.kts new file mode 100644 index 00000000..4ff68e4e --- /dev/null +++ b/kotlin-analysis/intellij-dependency/build.gradle.kts @@ -0,0 +1,60 @@ +import org.jetbrains.DokkaPublicationBuilder.Component.Shadow +import org.jetbrains.registerDokkaArtifactPublication + +plugins { + id("com.github.johnrengelman.shadow") + `maven-publish` + id("com.jfrog.bintray") +} + +repositories { + maven(url = "https://www.jetbrains.com/intellij-repository/snapshots") + maven(url = "https://www.jetbrains.com/intellij-repository/releases") + maven(url = "https://kotlin.bintray.com/kotlin-plugin") +} + +val intellijCore: Configuration by configurations.creating + +fun intellijCoreAnalysis() = zipTree(intellijCore.singleFile).matching { + include("intellij-core-analysis.jar") +} + +dependencies { + val kotlin_plugin_version: String by project + api("org.jetbrains.kotlin:ide-common-ij193:$kotlin_plugin_version") + api("org.jetbrains.kotlin:kotlin-plugin-ij193:$kotlin_plugin_version") { + //TODO: parametrize ij version after 1.3.70 + isTransitive = false + } + + val idea_version: String by project + intellijCore("com.jetbrains.intellij.idea:intellij-core:$idea_version") + implementation(intellijCoreAnalysis()) + + val kotlin_version: String by project + api("org.jetbrains.kotlin:kotlin-compiler:$kotlin_version") + +} + +tasks { + shadowJar { + val dokka_version: String by project + archiveFileName.set("dokka-kotlin-analysis-intellij-$dokka_version.jar") + archiveClassifier.set("") + + exclude("colorScheme/**") + exclude("fileTemplates/**") + exclude("inspectionDescriptions/**") + exclude("intentionDescriptions/**") + exclude("tips/**") + exclude("messages/**") + exclude("src/**") + exclude("**/*.kotlin_metadata") + exclude("**/*.kotlin_builtins") + } +} + +registerDokkaArtifactPublication("kotlinAnalysisIntelliJ") { + artifactId = "kotlin-analysis-intellij" + component = Shadow +} diff --git a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/AnalysisEnvironment.kt b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/AnalysisEnvironment.kt index c8b324a0..e70be408 100644 --- a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/AnalysisEnvironment.kt +++ b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/AnalysisEnvironment.kt @@ -285,12 +285,11 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl Platform.common -> createCommonResolverForProject( projectContext, module, - library, modulesContent, environment ) - Platform.js -> createJsResolverForProject(projectContext, module, library, modulesContent) - Platform.native -> createNativeResolverForProject(projectContext, module, library, modulesContent) + Platform.js -> createJsResolverForProject(projectContext, module, modulesContent) + Platform.native -> createNativeResolverForProject(projectContext, module, modulesContent) } val libraryModuleDescriptor = resolverForProject.descriptorForModule(library) @@ -355,14 +354,13 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl private fun createCommonResolverForProject( projectContext: ProjectContext, module: ModuleInfo, - library: LibraryModuleInfo, modulesContent: (ModuleInfo) -> ModuleContent, environment: KotlinCoreEnvironment ): ResolverForProject { return object : AbstractResolverForProject( "Dokka", projectContext, - modules = listOf(module, library) + modules = module.dependencies() ) { override fun sdkDependency(module: ModuleInfo): ModuleInfo? = null @@ -394,13 +392,12 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl private fun createJsResolverForProject( projectContext: ProjectContext, module: ModuleInfo, - library: LibraryModuleInfo, modulesContent: (ModuleInfo) -> ModuleContent ): ResolverForProject { return object : AbstractResolverForProject( "Dokka", projectContext, - modules = listOf(module, library) + modules = module.dependencies() ) { override fun modulesContent(module: ModuleInfo): ModuleContent = modulesContent(module) override fun createResolverForModule( @@ -425,7 +422,6 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl private fun createNativeResolverForProject( projectContext: ProjectContext, module: ModuleInfo, - library: LibraryModuleInfo, modulesContent: (ModuleInfo) -> ModuleContent ): ResolverForProject { return object : AbstractResolverForProject( diff --git a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/CoreProjectFileIndex.kt b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/CoreProjectFileIndex.kt index d0e0bb4f..346a305e 100644 --- a/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/CoreProjectFileIndex.kt +++ b/kotlin-analysis/src/main/kotlin/org/jetbrains/dokka/analysis/CoreProjectFileIndex.kt @@ -1,7 +1,6 @@ package org.jetbrains.dokka.analysis import com.intellij.openapi.Disposable -import com.intellij.openapi.components.BaseComponent import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project @@ -54,6 +53,17 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List