Skip to content

Commit

Permalink
Use kotlin dsl
Browse files Browse the repository at this point in the history
  • Loading branch information
kizitonwose committed May 27, 2024
1 parent fa2c677 commit b1c47fd
Show file tree
Hide file tree
Showing 19 changed files with 296 additions and 257 deletions.
31 changes: 0 additions & 31 deletions build.gradle

This file was deleted.

15 changes: 15 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import com.kizitonwose.calendar.buildsrc.Plugins

plugins {
with(com.kizitonwose.calendar.buildsrc.Plugins) {
applyRootPlugins()
}
}

allprojects {
apply(plugin = Plugins.kotlinter)
}

tasks.register<Delete>("clean").configure {
delete(rootProject.layout.buildDirectory)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package com.kizitonwose.calendar.buildsrc

import org.gradle.api.JavaVersion
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.gradle.kotlin.dsl.PluginDependenciesSpecScope
import kotlin.math.max

object Config {
Expand All @@ -12,28 +13,39 @@ object Config {
}

object Android {
const val minSdkLibraryView = 15
const val minSdkLibraryCompose = 21
val minSdkSample = max(minSdkLibraryView, minSdkLibraryCompose)
const val targetSdk = 33
const val minSdkViewLibrary = 15
const val minSdkComposeLibrary = 21
val minSdkSampleApp = max(minSdkViewLibrary, minSdkComposeLibrary)
const val targetSdk = 34
const val compileSdk = 34

// See compose/kotlin version mapping
// https://developer.android.com/jetpack/androidx/releases/compose-kotlin
const val composeCompiler = "1.5.9"
const val composeCompiler = "1.5.14"
}

object Plugins {
const val android = "com.android.tools.build:gradle:8.2.2"
const val kotlin = Kotlin.gradlePlugin
const val kotlinter = "org.jmailen.gradle:kotlinter-gradle:4.2.0"
const val versions = "com.github.ben-manes:gradle-versions-plugin:0.51.0"
const val mavenPublish = "com.vanniktech:gradle-maven-publish-plugin:0.27.0"
private const val agpVersion = "8.4.0"
const val androidApp = "com.android.application"
const val androidLibrary = "com.android.library"
const val kotlinJvm = "org.jetbrains.kotlin.jvm"
const val kotlinAndroid = "org.jetbrains.kotlin.android"
const val kotlinter = "org.jmailen.kotlinter"
const val mavenPublish = "com.vanniktech.maven.publish"
const val versionCheck = "com.github.ben-manes.versions"

fun PluginDependenciesSpecScope.applyRootPlugins() {
id(androidApp).version(agpVersion).apply(false)
id(androidLibrary).version(agpVersion).apply(false)
id(kotlinAndroid).version(Kotlin.version).apply(false)
id(kotlinter).version("4.3.0").apply(false)
id(mavenPublish).version("0.28.0").apply(false)
id(versionCheck).version("0.51.0").apply(true)
}
}

object Kotlin {
private const val version = "1.9.22"
const val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$version"
internal const val version = "1.9.24"
const val stdLib = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version"
}

Expand All @@ -49,11 +61,11 @@ object Libs {
object View {
const val legacySupport = "androidx.legacy:legacy-support-v4:1.0.0"
const val appCompat = "androidx.appcompat:appcompat:1.6.1"
const val coreKtx = "androidx.core:core-ktx:1.12.0"
const val coreKtx = "androidx.core:core-ktx:1.13.1"
const val constraintLayout = "androidx.constraintlayout:constraintlayout:2.1.4"
const val cardView = "androidx.cardview:cardview:1.0.0"
const val recyclerView = "androidx.recyclerview:recyclerview:1.3.2"
const val material = "com.google.android.material:material:1.9.0"
const val material = "com.google.android.material:material:1.12.0"

object Test {
private const val espressoVersion = "3.5.1"
Expand All @@ -72,7 +84,7 @@ object Libs {
const val tooling = "androidx.compose.ui:ui-tooling:$composeVersion"
const val runtime = "androidx.compose.runtime:runtime:$composeVersion"
const val material = "androidx.compose.material:material:$composeVersion"
const val activity = "androidx.activity:activity-compose:1.8.2"
const val activity = "androidx.activity:activity-compose:1.9.0"
const val navigation = "androidx.navigation:navigation-compose:2.7.7"

object Test {
Expand Down
45 changes: 0 additions & 45 deletions compose/build.gradle

This file was deleted.

48 changes: 48 additions & 0 deletions compose/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import com.kizitonwose.calendar.buildsrc.Android
import com.kizitonwose.calendar.buildsrc.Config
import com.kizitonwose.calendar.buildsrc.Kotlin
import com.kizitonwose.calendar.buildsrc.Libs

plugins {
with(com.kizitonwose.calendar.buildsrc.Plugins) {
id(androidLibrary)
id(kotlinAndroid)
id(mavenPublish)
}
}

android {
compileSdk = Android.compileSdk
namespace = "com.kizitonwose.calendar.compose"
defaultConfig {
minSdk = Android.minSdkComposeLibrary
}
java {
toolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}
kotlin {
jvmToolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = Android.composeCompiler
}
}

dependencies {
api(project(":core"))
implementation(project(":data"))
implementation(Kotlin.stdLib)

implementation(Libs.Compose.ui)
implementation(Libs.Compose.tooling)
implementation(Libs.Compose.foundation)

testImplementation(Libs.Core.Test.junit)
}
21 changes: 0 additions & 21 deletions core/build.gradle

This file was deleted.

25 changes: 25 additions & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import com.kizitonwose.calendar.buildsrc.Config
import com.kizitonwose.calendar.buildsrc.Libs

plugins {
with(com.kizitonwose.calendar.buildsrc.Plugins) {
id(kotlinJvm)
id(mavenPublish)
}
}

java {
toolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}

kotlin {
jvmToolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}

dependencies {
implementation(Libs.Compose.runtime) // Only needed for @Immutable annotation.
}
25 changes: 0 additions & 25 deletions data/build.gradle

This file was deleted.

29 changes: 29 additions & 0 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import com.kizitonwose.calendar.buildsrc.Config
import com.kizitonwose.calendar.buildsrc.Kotlin
import com.kizitonwose.calendar.buildsrc.Libs

plugins {
with(com.kizitonwose.calendar.buildsrc.Plugins) {
id(kotlinJvm)
id(mavenPublish)
}
}

java {
toolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}

kotlin {
jvmToolchain {
languageVersion.set(Config.compatibleJavaLanguageVersion)
}
}

dependencies {
implementation(project(":core"))
implementation(Kotlin.stdLib)

testImplementation(Libs.Core.Test.junit)
}
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Sun Feb 11 17:28:19 CET 2024
#Mon May 27 16:10:41 CEST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit b1c47fd

Please sign in to comment.