aboutsummaryrefslogtreecommitdiff
path: root/dokka-android-gradle-plugin/src/main/kotlin/main.kt
diff options
context:
space:
mode:
authorSimon Ogorodnik <sem-oro@yandex.ru>2016-11-01 02:10:32 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2016-11-01 14:46:01 +0300
commit769701f99a1aefbc9d385c1938c9c7d3a7b2e38e (patch)
treec3ea4802d9e627c90870808aba9343eb224a114c /dokka-android-gradle-plugin/src/main/kotlin/main.kt
parent08bcaa257f7b48929af6ee29007dd6f0d7bb1b52 (diff)
downloaddokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.tar.gz
dokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.tar.bz2
dokka-769701f99a1aefbc9d385c1938c9c7d3a7b2e38e.zip
Total build refactoring, prepare for new development iteration
Removed old and useless build helpers Remove old .xml's from .idea and add .idea/shelf to .gitignore build-docs.xml fixed, dokka_version set to 0.9.10
Diffstat (limited to 'dokka-android-gradle-plugin/src/main/kotlin/main.kt')
-rw-r--r--dokka-android-gradle-plugin/src/main/kotlin/main.kt76
1 files changed, 0 insertions, 76 deletions
diff --git a/dokka-android-gradle-plugin/src/main/kotlin/main.kt b/dokka-android-gradle-plugin/src/main/kotlin/main.kt
deleted file mode 100644
index 054ed358..00000000
--- a/dokka-android-gradle-plugin/src/main/kotlin/main.kt
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.jetbrains.dokka.gradle
-
-import com.android.build.gradle.AppExtension
-import com.android.build.gradle.LibraryExtension
-import com.android.build.gradle.api.BaseVariant
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.tasks.SourceSet
-import java.io.File
-
-open class DokkaAndroidPlugin : Plugin<Project> {
- val allVariantsClassPath = mutableSetOf<File>()
-
- override fun apply(project: Project) {
- project.tasks.create("dokka", DokkaAndroidTask::class.java).apply {
- moduleName = project.name
- outputDirectory = File(project.buildDir, "dokka").absolutePath
- }
-
- if (project.hasAndroidPlugin()) {
- project.afterEvaluate {
- collectClasspath(project)
- }
- }
- else {
- project.plugins.whenPluginAdded {
- if (project.hasAndroidPlugin()) {
- collectClasspath(project)
- }
- }
- }
- }
-
- private fun collectClasspath(project: Project) {
- val variants = project.collectAllVariants()
- variants.flatMapTo(allVariantsClassPath) { it.javaCompiler.classpath.files }
- }
-}
-
-open class DokkaAndroidTask : DokkaTask() {
- override val sdkProvider: SdkProvider? = AndroidSdkProvider(project)
-}
-
-private fun Project.hasAndroidPlugin() = plugins.hasPlugin("com.android.library") || plugins.hasPlugin("com.android.application")
-
-private fun Project.findDokkaAndroidPlugin() = plugins.findPlugin(DokkaAndroidPlugin::class.java)
-
-private fun Project.collectAllVariants(): Collection<BaseVariant> {
- extensions.findByType(LibraryExtension::class.java)?.let {
- return it.libraryVariants
- }
- extensions.findByType(AppExtension::class.java)?.let {
- return it.applicationVariants
- }
- return emptyList()
-}
-
-private class AndroidSdkProvider(private val project: Project) : SdkProvider {
- private val ext by lazy {
- project.extensions.findByType(LibraryExtension::class.java) ?: project.extensions.findByType(AppExtension::class.java)
- }
-
- override val name: String = "android"
-
- override val isValid: Boolean
- get() = project.hasAndroidPlugin()
-
- override val classpath: List<File>
- get() = ext.bootClasspath + (project.findDokkaAndroidPlugin()?.allVariantsClassPath ?: emptyList<File>())
-
- override val sourceDirs: Set<File>?
- get() {
- val sourceSet = ext?.sourceSets?.findByName(SourceSet.MAIN_SOURCE_SET_NAME)
- return sourceSet?.java?.srcDirs
- }
-}