From 2bab59fee39cd60ad80327d528771015a5903639 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 29 Apr 2019 11:29:23 +0200 Subject: Fix for analysis platform --- README.md | 4 ++++ integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt | 2 +- .../src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt | 6 +++++- .../org/jetbrains/dokka/gradle/configurationImplementations.kt | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8540eda8..564dbe79 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,8 @@ dokka { targets = ["JVM"] // See platforms section of documentation + platform = "JVM" // Platform used for code analysis + // Manual adding files to classpath // This property not overrides classpath collected from kotlinTasks but appends to it classpath = [new File("$buildDir/other.jar")] @@ -175,6 +177,7 @@ dokka { multiplatform { js { // the name here is arbitrary targets = ["JS"] + platform = "js" sourceRoot { path = kotlin.sourceSets.jsMain.kotlin.srcDirs[0] } @@ -185,6 +188,7 @@ dokka { jvm { // the name here is arbitrary targets = ["JVM"] + platform = "jvm" sourceRoot { path = kotlin.sourceSets.jvmMain.kotlin.srcDirs[0] } diff --git a/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt b/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt index 49481089..7c6753d4 100644 --- a/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt +++ b/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt @@ -18,7 +18,7 @@ enum class Platform(val key: String) { js.key -> js native.key -> native common.key -> common - else -> TODO("write normal exception") + else -> throw IllegalArgumentException("Unrecognized platform: $key") } } } diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt index b7e859e1..f7999f59 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt @@ -14,6 +14,7 @@ import org.gradle.api.tasks.compile.AbstractCompile import org.jetbrains.dokka.DokkaBootstrap import org.jetbrains.dokka.DokkaConfiguration import org.jetbrains.dokka.DokkaConfiguration.SourceRoot +import org.jetbrains.dokka.Platform import org.jetbrains.dokka.ReflectDsl import org.jetbrains.dokka.ReflectDsl.isNotInstance import java.io.File @@ -241,11 +242,14 @@ open class DokkaTask : DefaultTask() { passConfig.collectInheritedExtensionsFromLibraries = collectInheritedExtensionsFromLibraries passConfig.suppressedFiles = collectSuppressedFiles(passConfig.sourceRoots) passConfig.externalDocumentationLinks.addAll(externalDocumentationLinks) + if(passConfig.platform.isNotEmpty()){ + passConfig.analysisPlatform = Platform.fromString(passConfig.platform) + } return passConfig } - private fun collectSourceRoots(): List { + private fun collectSourceRoots(): List { val sourceDirs = when { sourceDirs.any() -> { logger.info("Dokka: Taking source directories provided by the user") diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt index 50412734..887e4d9b 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt @@ -41,6 +41,7 @@ open class GradlePassConfigurationImpl(@Transient val name: String = ""): PassCo override var suppressedFiles: List = emptyList() override var collectInheritedExtensionsFromLibraries: Boolean = false override var analysisPlatform: Platform = Platform.DEFAULT + var platform: String = "" override var targets: List = emptyList() override var sinceKotlin: String = "1.0" -- cgit From 063bcfa85f07bd0ad7a28479931cd982665d2c28 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 29 Apr 2019 15:42:42 +0200 Subject: Fix for external documentation links and gradle tests --- .../src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt | 1 - .../kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt index f7999f59..d289237f 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt @@ -50,7 +50,6 @@ open class DokkaTask : DefaultTask() { @Input var outputFormat: String = "html" - @OutputDirectory var outputDirectory: String = "" var dokkaRuntime: Configuration? = null diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt index 887e4d9b..fd889d78 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/configurationImplementations.kt @@ -97,8 +97,8 @@ class GradleSourceLinkDefinitionImpl : SourceLinkDefinition { } class GradleExternalDocumentationLinkImpl : ExternalDocumentationLink { - override var url: URL = URL("") - override var packageListUrl: URL = URL("") + override var url: URL = URL("http://") + override var packageListUrl: URL = URL("http://") } class GradleDokkaConfigurationImpl: DokkaConfiguration { -- cgit From 1f2ceb505aeb67fb21a483711a9bdbcebe3d9e0b Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 29 Apr 2019 16:06:53 +0200 Subject: Fix Android Gradle Plugin --- runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt b/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt index 367b9257..2d79013e 100644 --- a/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt +++ b/runners/android-gradle-plugin/src/main/kotlin/mainAndroid.kt @@ -7,6 +7,9 @@ import org.jetbrains.dokka.DokkaConfiguration.ExternalDocumentationLink.Builder import org.jetbrains.dokka.DokkaConfiguration.SourceRoot import java.io.File +internal const val CONFIGURATION_EXTENSION_NAME = "configuration" +internal const val MULTIPLATFORM_EXTENSION_NAME = "multiplatform" + open class DokkaAndroidPlugin : Plugin { override fun apply(project: Project) { DokkaVersion.loadFrom(javaClass.getResourceAsStream("/META-INF/gradle-plugins/org.jetbrains.dokka-android.properties")) @@ -15,6 +18,11 @@ open class DokkaAndroidPlugin : Plugin { moduleName = project.name outputDirectory = File(project.buildDir, "dokka").absolutePath } + project.tasks.withType(DokkaTask::class.java) { task -> + val passConfiguration = project.container(GradlePassConfigurationImpl::class.java) + task.extensions.add(MULTIPLATFORM_EXTENSION_NAME, passConfiguration) + task.extensions.create(CONFIGURATION_EXTENSION_NAME, GradlePassConfigurationImpl::class.java, "") + } } } -- cgit From 885ddd8cfffeb39d837fbd545e009c2cd93e983e Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 29 Apr 2019 16:07:13 +0200 Subject: Fix Gradle incremental build --- .../kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt index d289237f..d4eee4b2 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/DokkaTask.kt @@ -61,7 +61,7 @@ open class DokkaTask : DefaultTask() { var sourceDirs: Iterable = emptyList() @Input - var sourceRoots: MutableList = arrayListOf() + var sourceRoots: MutableList = arrayListOf() @Input var dokkaFatJar: Any = "org.jetbrains.dokka:dokka-fatjar:${DokkaVersion.version}" @@ -265,6 +265,22 @@ open class DokkaTask : DefaultTask() { return sourceRoots + (sourceDirs?.toSourceRoots() ?: emptyList()) } + /** + * Needed for Gradle incremental build + */ + @OutputDirectory + fun getOutputDirectoryAsFile(): File = project.file(outputDirectory) + + /** + * Needed for Gradle incremental build + */ + @InputFiles + fun getInputFiles(): FileCollection { + val (_, tasksSourceRoots) = extractClasspathAndSourceRootsFromKotlinTasks() + return project.files(tasksSourceRoots.map { project.fileTree(it) }) + + project.files(collectSourceRoots().map { project.fileTree(File(it.path)) }) + } + companion object { const val COLORS_ENABLED_PROPERTY = "kotlin.colors.enabled" const val ABSTRACT_KOTLIN_COMPILE = "org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile" -- cgit From bc83950d6a147111eba061031eb02e1649ba9fdd Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Mon, 29 Apr 2019 16:07:34 +0200 Subject: Fix some tests --- .../testData/androidLibDependsOnJavaLib/lib/build.gradle | 11 ++++++----- runners/gradle-integration-tests/testData/basic/build.gradle | 2 +- .../testData/sourcesChange/build.gradle | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/runners/gradle-integration-tests/testData/androidLibDependsOnJavaLib/lib/build.gradle b/runners/gradle-integration-tests/testData/androidLibDependsOnJavaLib/lib/build.gradle index 0f27d365..82215a44 100644 --- a/runners/gradle-integration-tests/testData/androidLibDependsOnJavaLib/lib/build.gradle +++ b/runners/gradle-integration-tests/testData/androidLibDependsOnJavaLib/lib/build.gradle @@ -30,10 +30,11 @@ dependencies { } dokka { - dokkaFatJar = new File(dokka_fatjar) - - externalDocumentationLink { - url = new URL("https://example.com") - packageListUrl = file("$rootDir/package-list").toURI().toURL() + dokkaFatJar = files(dokka_fatjar) + configuration { + externalDocumentationLink { + url = new URL("https://example.com") + packageListUrl = file("$rootDir/package-list").toURI().toURL() + } } } \ No newline at end of file diff --git a/runners/gradle-integration-tests/testData/basic/build.gradle b/runners/gradle-integration-tests/testData/basic/build.gradle index a3116751..85e86748 100644 --- a/runners/gradle-integration-tests/testData/basic/build.gradle +++ b/runners/gradle-integration-tests/testData/basic/build.gradle @@ -35,6 +35,6 @@ dependencies { dokka { - dokkaFatJar = new File(dokka_fatjar) + dokkaFatJar = files(dokka_fatjar) classpath += files("$projectDir/classDir") } \ No newline at end of file diff --git a/runners/gradle-integration-tests/testData/sourcesChange/build.gradle b/runners/gradle-integration-tests/testData/sourcesChange/build.gradle index 4627e8ef..f436afb4 100644 --- a/runners/gradle-integration-tests/testData/sourcesChange/build.gradle +++ b/runners/gradle-integration-tests/testData/sourcesChange/build.gradle @@ -35,5 +35,5 @@ dependencies { dokka { - dokkaFatJar = new File(dokka_fatjar) + dokkaFatJar = files(dokka_fatjar) } \ No newline at end of file -- cgit From fef60431fdbc9a59a537bdb83f180383b8fd9678 Mon Sep 17 00:00:00 2001 From: Kamil Doległo Date: Tue, 30 Apr 2019 11:56:54 +0200 Subject: Fix suspend inline function test --- core/testdata/format/inlineSuspendFunction.kt | 2 +- core/testdata/format/inlineSuspendFunction.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/testdata/format/inlineSuspendFunction.kt b/core/testdata/format/inlineSuspendFunction.kt index f2009eff..02b3094b 100644 --- a/core/testdata/format/inlineSuspendFunction.kt +++ b/core/testdata/format/inlineSuspendFunction.kt @@ -1,6 +1,6 @@ /** * returns 1 */ -inline suspend fun foo(): Int { +inline suspend fun foo(a: () -> String): Int { 1 } diff --git a/core/testdata/format/inlineSuspendFunction.md b/core/testdata/format/inlineSuspendFunction.md index 3bf196b6..e109039c 100644 --- a/core/testdata/format/inlineSuspendFunction.md +++ b/core/testdata/format/inlineSuspendFunction.md @@ -2,7 +2,7 @@ # foo -`suspend inline fun foo(): Int` +`suspend inline fun foo(a: () -> String): Int` returns 1 -- cgit