Skip to content

Commit 3acb247

Browse files
committed
Cleanups and update buildSrc with spotless addition
1 parent d98fc6d commit 3acb247

File tree

19 files changed

+513
-152
lines changed

19 files changed

+513
-152
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,8 @@ plugins {
44
id("io.wax911.emojify")
55
}
66

7-
android {
8-
9-
}
10-
117
dependencies {
12-
implementation(project(":emojify"))
8+
implementation(project(Libraries.AniTrend.Emojify.emojify))
139

1410
implementation(Libraries.Google.Material.material)
1511
implementation(Libraries.AndroidX.ConstraintLayout.constraintLayout)

build.gradle

Lines changed: 0 additions & 27 deletions
This file was deleted.

build.gradle.kts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Top-level build file where you can add configuration options common to all sub-projects/modules.
2+
3+
buildscript {
4+
repositories {
5+
google()
6+
jcenter()
7+
mavenCentral()
8+
}
9+
dependencies {
10+
classpath(io.wax911.emoji.buildSrc.Libraries.Android.Tools.buildGradle)
11+
classpath(io.wax911.emoji.buildSrc.Libraries.JetBrains.Kotlin.Gradle.plugin)
12+
classpath(io.wax911.emoji.buildSrc.Libraries.JetBrains.Kotlin.Serialization.serialization)
13+
}
14+
}
15+
16+
allprojects {
17+
repositories {
18+
google()
19+
jcenter()
20+
mavenCentral()
21+
}
22+
}
23+
24+
tasks.create("clean", Delete::class) {
25+
delete(rootProject.buildDir)
26+
}

buildSrc/build.gradle.kts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@ repositories {
77
google()
88
jcenter()
99
mavenCentral()
10+
maven {
11+
setUrl("https://www.jitpack.io")
12+
}
13+
maven {
14+
setUrl("https://plugins.gradle.org/m2/")
15+
}
1016
}
1117

1218
val kotlinVersion = "1.4.31"
13-
val buildToolsVersion = "4.1.2"
14-
val dokkaVersion = "0.10.1"
19+
val buildToolsVersion = "4.1.3"
20+
val dokkaVersion = "1.4.30"
21+
val manesVersion = "0.33.0"
22+
val spotlessVersion = "5.12.1"
1523

1624
dependencies {
1725
/* Depend on the android gradle plugin, since we want to access it in our plugin */
@@ -23,6 +31,12 @@ dependencies {
2331
/* Depend on the dokka plugin, since we want to access it in our plugin */
2432
implementation("org.jetbrains.dokka:dokka-gradle-plugin:$dokkaVersion")
2533

34+
/** Dependency management */
35+
implementation("com.github.ben-manes:gradle-versions-plugin:$manesVersion")
36+
37+
/** Spotless */
38+
implementation("com.diffplug.spotless:spotless-plugin-gradle:$spotlessVersion")
39+
2640
/* Depend on the default Gradle API's since we want to build a custom plugin */
2741
implementation(gradleApi())
2842
implementation(localGroovy())

buildSrc/src/main/java/io/wax911/emoji/buildSrc/Libraries.kt

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.wax911.emoji.buildSrc
22

33
import io.wax911.emoji.buildSrc.common.Versions
4+
import io.wax911.emoji.buildSrc.module.Modules
45

56
object Libraries {
67
const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
@@ -11,7 +12,7 @@ object Libraries {
1112
object Android {
1213

1314
object Tools {
14-
private const val version = "4.1.2"
15+
private const val version = "4.1.3"
1516
const val buildGradle = "com.android.tools.build:gradle:$version"
1617
}
1718
}
@@ -36,8 +37,8 @@ object Libraries {
3637
}
3738

3839
object Lifecycle {
39-
private const val version = "2.2.0"
40-
const val extensions = "androidx.lifecycle:lifecycle-extensions:$version"
40+
private const val version = "2.3.0"
41+
const val extensions = "androidx.lifecycle:lifecycle-extensions:2.2.0"
4142
const val runTimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:$version"
4243
const val liveDataKtx = "androidx.lifecycle:lifecycle-livedata-ktx:$version"
4344
const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:$version"
@@ -52,7 +53,7 @@ object Libraries {
5253
}
5354

5455
object Recycler {
55-
private const val version = "1.2.0-beta01"
56+
private const val version = "1.2.0-rc01"
5657
const val recyclerView = "androidx.recyclerview:recyclerview:$version"
5758
const val recyclerViewSelection = "androidx.recyclerview:recyclerview-selection:$version"
5859
}
@@ -63,19 +64,33 @@ object Libraries {
6364
}
6465

6566
object Test {
66-
private const val version = "1.2.0"
67+
private const val version = "1.3.0"
6768
const val core = "androidx.test:core:$version"
6869
const val runner = "androidx.test:runner:$version"
6970
const val rules = "androidx.test:rules:$version"
7071

7172
object Extension {
72-
private const val version = "1.1.1"
73+
private const val version = "1.1.2"
7374
const val junit = "androidx.test.ext:junit:$version"
7475
const val junitKtx = "androidx.test.ext:junit-ktx:$version"
7576
}
7677
}
7778
}
7879

80+
object AniTrend {
81+
82+
object Emojify {
83+
val emojify = Modules.Library.Emojify.path()
84+
}
85+
}
86+
87+
object CashApp {
88+
object Turbine {
89+
private const val version = "0.4.1"
90+
const val turbine = "app.cash.turbine:turbine:$version"
91+
}
92+
}
93+
7994
object Google {
8095

8196
object Material {
@@ -87,12 +102,12 @@ object Libraries {
87102
object JetBrains {
88103

89104
object Dokka {
90-
private const val version = "0.10.1"
105+
private const val version = "1.4.30"
91106
const val gradlePlugin = "org.jetbrains.dokka:dokka-gradle-plugin:$version"
92107
}
93108

94109
object Kotlin {
95-
private const val version = "1.4.31"
110+
private const val version = "1.4.32"
96111
const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version"
97112
const val reflect = "org.jetbrains.kotlin:kotlin-reflect:$version"
98113

@@ -111,7 +126,7 @@ object Libraries {
111126

112127
object KotlinX {
113128
object Coroutines {
114-
private const val version = "1.4.2"
129+
private const val version = "1.4.3"
115130
const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version"
116131
const val android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version"
117132
const val test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:$version"

buildSrc/src/main/java/io/wax911/emoji/buildSrc/common/Constants.kt

Lines changed: 0 additions & 9 deletions
This file was deleted.

buildSrc/src/main/java/io/wax911/emoji/buildSrc/common/Versions.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,25 @@ package io.wax911.emoji.buildSrc.common
22

33
object Versions {
44

5+
private fun Int.toVersion(): String {
6+
return if (this < 9) "0$this" else "$this"
7+
}
8+
59
const val compileSdk = 30
610
const val targetSdk = 30
711
const val minSdk = 21
812

9-
const val versionCode = 160010
10-
const val versionName = "1.6.0-beta01"
13+
private const val major = 1
14+
private const val minor = 6
15+
private const val patch = 0
16+
private const val revision = 2
17+
18+
const val versionCode = major * 100_000 + minor * 10_000 + patch * 1_000 + revision * 100
19+
val versionName = "$major.$minor.$patch-rc${revision.toVersion()}"
1120

12-
const val mockk = "1.10.0"
13-
const val junit = "4.13"
21+
const val mockk = "1.11.0"
22+
const val junit = "4.13.2"
1423

1524
const val timber = "4.7.1"
25+
const val ktlint = "0.40.0"
1626
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.wax911.emoji.buildSrc.module
2+
3+
internal object Modules {
4+
5+
interface Module {
6+
val id: String
7+
8+
/**
9+
* @return Formatted id of module as a path string
10+
*/
11+
fun path(): String = ":$id"
12+
}
13+
14+
enum class App(override val id: String) : Module {
15+
Sample("app")
16+
}
17+
18+
enum class Library(override val id: String) : Module {
19+
Emojify("emojify")
20+
}
21+
}

buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/CorePlugin.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.wax911.emoji.buildSrc.plugin
22

33
import io.wax911.emoji.buildSrc.plugin.components.configureAndroid
4+
import io.wax911.emoji.buildSrc.plugin.components.configureSpotless
45
import io.wax911.emoji.buildSrc.plugin.components.configureDependencies
56
import io.wax911.emoji.buildSrc.plugin.components.configureOptions
67
import io.wax911.emoji.buildSrc.plugin.components.configurePlugins
@@ -36,8 +37,8 @@ open class CorePlugin : Plugin<Project> {
3637
project.configureAndroid()
3738
project.configureOptions()
3839
project.configureDependencies()
39-
40-
//project.availableExtensions()
41-
//project.availableComponents()
40+
project.configureSpotless()
41+
project.availableExtensions()
42+
project.availableComponents()
4243
}
4344
}

buildSrc/src/main/java/io/wax911/emoji/buildSrc/plugin/components/AndroidConfiguration.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
package io.wax911.emoji.buildSrc.plugin.components
22

3-
import io.wax911.emoji.buildSrc.plugin.extensions.baseExtension
43
import io.wax911.emoji.buildSrc.common.Versions
5-
import io.wax911.emoji.buildSrc.common.isLibraryModule
6-
import io.wax911.emoji.buildSrc.common.isSampleModule
7-
import io.wax911.emoji.buildSrc.plugin.extensions.baseAppExtension
8-
import io.wax911.emoji.buildSrc.plugin.extensions.libraryExtension
94
import com.android.build.gradle.internal.dsl.DefaultConfig
5+
import io.wax911.emoji.buildSrc.plugin.extensions.*
6+
import io.wax911.emoji.buildSrc.plugin.extensions.baseAppExtension
7+
import io.wax911.emoji.buildSrc.plugin.extensions.baseExtension
8+
import io.wax911.emoji.buildSrc.plugin.extensions.spotlessExtension
109
import org.gradle.api.JavaVersion
1110
import org.gradle.api.Project
1211
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
1312
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile
1413
import java.io.File
1514

15+
internal fun Project.configureSpotless() {
16+
if (isLibraryModule())
17+
spotlessExtension().run {
18+
kotlin {
19+
target("**/kotlin/**/*.kt")
20+
targetExclude("$buildDir/**/*.kt", "bin/**/*.kt")
21+
ktlint(Versions.ktlint).userData(
22+
mapOf("android" to "true")
23+
)
24+
licenseHeaderFile(rootProject.file("spotless/copyright.kt"))
25+
}
26+
}
27+
}
28+
1629
@Suppress("UnstableApiUsage")
1730
private fun DefaultConfig.applyAdditionalConfiguration(project: Project) {
1831
if (project.isSampleModule()) {

0 commit comments

Comments
 (0)