Skip to content

Commit

Permalink
#50 update plugins handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex009 committed May 4, 2020
1 parent b4b79f7 commit 55318ce
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 21 deletions.
11 changes: 10 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,16 @@ buildscript {
maven { url = uri("https://dl.bintray.com/icerockdev/plugins") }
}
dependencies {
Deps.plugins.values.forEach { classpath(it) }
with(Deps.Plugins) {
listOf(
androidApplication,
androidLibrary,
kotlinMultiplatform,
kotlinKapt,
kotlinAndroid,
mokoResources
)
}.let { plugins(it) }
}
}

Expand Down
50 changes: 37 additions & 13 deletions buildSrc/src/main/kotlin/Deps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,45 @@

object Deps {
object Plugins {
const val android =
private const val androidPluginModule =
"com.android.tools.build:gradle:${Versions.Plugins.android}"
const val kotlin =
val androidApplication = PluginDesc(
id = "com.android.application",
module = androidPluginModule
)
val androidLibrary = PluginDesc(
id = "com.android.library",
module = androidPluginModule
)

private const val kotlinPluginModule =
"org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.Plugins.kotlin}"
const val mokoResources =
"dev.icerock.moko:resources-generator:${Versions.Plugins.mokoResources}"
val kotlinMultiplatform = PluginDesc(
id = "org.jetbrains.kotlin.multiplatform",
module = kotlinPluginModule
)
val kotlinKapt = PluginDesc(
id = "kotlin-kapt",
module = kotlinPluginModule
)
val kotlinAndroid = PluginDesc(
id = "kotlin-android",
module = kotlinPluginModule
)
val kotlinAndroidExtensions = PluginDesc(
id = "kotlin-android-extensions",
module = kotlinPluginModule
)

val mobileMultiplatform = PluginDesc(
id = "dev.icerock.mobile.multiplatform",
module = "dev.icerock:mobile-multiplatform:0.6.1"
)

val mokoResources = PluginDesc(
id = "dev.icerock.mobile.multiplatform-resources",
module = "dev.icerock.moko:resources-generator:${Versions.Plugins.mokoResources}"
)
}

object Libs {
Expand Down Expand Up @@ -55,13 +88,4 @@ object Deps {
const val detektFormatting = "io.gitlab.arturbosch.detekt:detekt-formatting:${Versions.Plugins.detekt}"
}
}

val plugins: Map<String, String> = mapOf(
"com.android.application" to Plugins.android,
"com.android.library" to Plugins.android,
"org.jetbrains.kotlin.multiplatform" to Plugins.kotlin,
"kotlin-kapt" to Plugins.kotlin,
"kotlin-android" to Plugins.kotlin,
"dev.icerock.mobile.multiplatform-resources" to Plugins.mokoResources
)
}
25 changes: 25 additions & 0 deletions buildSrc/src/main/kotlin/PluginDesc.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Copyright 2020 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license.
*/

import org.gradle.kotlin.dsl.DependencyHandlerScope
import org.gradle.plugin.use.PluginDependenciesSpec

data class PluginDesc(
val id: String,
val module: String
)

fun DependencyHandlerScope.plugin(pluginDesc: PluginDesc) {
"classpath"(pluginDesc.module)
}

fun DependencyHandlerScope.plugins(pluginDescList: List<PluginDesc>) {
pluginDescList
.distinctBy { it.module }
.forEach { plugin(it) }
}

fun PluginDependenciesSpec.plugin(pluginDesc: PluginDesc) {
id(pluginDesc.id)
}
6 changes: 3 additions & 3 deletions gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
*/

plugins {
id("org.gradle.kotlin.kotlin-dsl") version "1.3.6"
`kotlin-dsl`
id("org.gradle.maven-publish")
id("io.gitlab.arturbosch.detekt") version(Versions.Plugins.detekt)
}
Expand All @@ -17,8 +17,8 @@ repositories {

dependencies {
implementation(Deps.Libs.Jvm.kotlinPoet)
compileOnly(Deps.Plugins.kotlin)
compileOnly(Deps.Plugins.android)
compileOnly(Deps.Plugins.kotlinMultiplatform.module)
compileOnly(Deps.Plugins.androidLibrary.module)
implementation(Deps.Libs.Jvm.apacheCommonsText)
detektPlugins(Deps.Libs.Jvm.detektFormatting)
}
Expand Down
8 changes: 4 additions & 4 deletions resources/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
*/

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.multiplatform")
id("kotlin-android-extensions")
id("dev.icerock.mobile.multiplatform")
plugin(Deps.Plugins.androidLibrary)
plugin(Deps.Plugins.kotlinMultiplatform)
plugin(Deps.Plugins.kotlinAndroidExtensions)
plugin(Deps.Plugins.mobileMultiplatform)
id("maven-publish")
}

Expand Down

0 comments on commit 55318ce

Please sign in to comment.