diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 01e9b6a795..83315c71ec 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,11 +7,10 @@ import java.util.Date import java.util.Properties plugins { - id("com.android.application") - id("kotlin-android") + alias(libs.plugins.android.application) + alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.ktlint) id("androidx.navigation.safeargs") - id("org.jlleitschuh.gradle.ktlint") - id("org.jetbrains.kotlin.android") id("app.cash.exhaustive") id("kotlin-parcelize") id("com.squareup.wire") diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 6580b782dc..6faa8b0e1f 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -1,16 +1,12 @@ -import org.gradle.kotlin.dsl.extra +plugins { + alias(libs.plugins.jetbrains.kotlin.jvm) apply false +} buildscript { - val kotlinVersion by extra("1.9.20") - - repositories { - google() - mavenCentral() - } - - dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") - } + repositories { + google() + mavenCentral() + } } apply(from = "${rootDir}/../constants.gradle.kts") diff --git a/build-logic/plugins/build.gradle.kts b/build-logic/plugins/build.gradle.kts index 55490e66f8..67f93ac08a 100644 --- a/build-logic/plugins/build.gradle.kts +++ b/build-logic/plugins/build.gradle.kts @@ -2,8 +2,8 @@ import org.gradle.kotlin.dsl.extra plugins { `kotlin-dsl` + alias(libs.plugins.ktlint) id("groovy-gradle-plugin") - id("org.jlleitschuh.gradle.ktlint") version "12.1.1" } val signalJavaVersion: JavaVersion by rootProject.extra @@ -24,8 +24,8 @@ dependencies { implementation(libs.kotlin.gradle.plugin) implementation(libs.android.library) implementation(libs.android.application) - implementation(project(":tools")) implementation(libs.ktlint) + implementation(project(":tools")) // These allow us to reference the dependency catalog inside of our compiled plugins implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) diff --git a/build-logic/plugins/src/main/java/signal-library.gradle.kts b/build-logic/plugins/src/main/java/signal-library.gradle.kts index 5d312032a1..0d06dd69c8 100644 --- a/build-logic/plugins/src/main/java/signal-library.gradle.kts +++ b/build-logic/plugins/src/main/java/signal-library.gradle.kts @@ -16,6 +16,8 @@ val signalJavaVersion: JavaVersion by rootProject.extra val signalKotlinJvmTarget: String by rootProject.extra plugins { + // We cannot use the version catalog in the plugins block in convention plugins (it's not supported). + // Instead, plugin versions are controlled through the dependencies block in the build.gradle.kts. id("com.android.library") id("kotlin-android") id("ktlint") diff --git a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts index 1a9a8b2383..24100ce670 100644 --- a/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts +++ b/build-logic/plugins/src/main/java/signal-sample-app.gradle.kts @@ -18,6 +18,8 @@ val signalJavaVersion: JavaVersion by rootProject.extra val signalKotlinJvmTarget: String by rootProject.extra plugins { + // We cannot use the version catalog in the plugins block in convention plugins (it's not supported). + // Instead, plugin versions are controlled through the dependencies block in the build.gradle.kts. id("com.android.application") id("kotlin-android") id("ktlint") diff --git a/build-logic/tools/build.gradle.kts b/build-logic/tools/build.gradle.kts index 039e72122e..825f937ed9 100644 --- a/build-logic/tools/build.gradle.kts +++ b/build-logic/tools/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("org.jetbrains.kotlin.jvm") + alias(libs.plugins.jetbrains.kotlin.jvm) id("java-library") - id("org.jlleitschuh.gradle.ktlint") version "12.1.1" + alias(libs.plugins.ktlint) } val signalJavaVersion: JavaVersion by rootProject.extra diff --git a/build.gradle.kts b/build.gradle.kts index 30095a0d97..9907519bbb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,11 @@ +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.jetbrains.kotlin.android) apply false + alias(libs.plugins.jetbrains.kotlin.jvm) apply false + alias(libs.plugins.ktlint) +} + buildscript { - rootProject.extra["kotlin_version"] = "1.9.20" repositories { google() mavenCentral() @@ -15,8 +21,6 @@ buildscript { classpath(libs.gradle) classpath(libs.androidx.navigation.safe.args.gradle.plugin) classpath(libs.protobuf.gradle.plugin) - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${rootProject.extra["kotlin_version"] as String}") - classpath(libs.ktlint) classpath(libs.exhaustive.gradle) classpath("com.squareup.wire:wire-gradle-plugin:4.4.3") { exclude(group = "com.squareup.wire", module = "wire-swift-generator") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0f21703e4e..5e20604a0d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,6 +21,15 @@ accompanist = "0.28.0" nanohttpd = "2.3.1" navigation-safe-args-gradle-plugin = "2.5.3" protobuf-gradle-plugin = "0.9.0" +ktlint = "12.1.1" + +[plugins] +android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } +android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } +jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } +androidx-navigation-safe-args = { id = "androidx.navigation.safeargs", version.ref = "navigation-safe-args-gradle-plugin" } [libraries] # Android Plugins @@ -53,7 +62,7 @@ kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0" kotlinx-coroutines-core-jvm = "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0" kotlinx-coroutines-play-services = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.8.1" kotlinx-coroutines-rx3 = "org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.3.9" -ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.1.1" +ktlint = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint" } ktlint-twitter-compose = "com.twitter.compose.rules:ktlint:0.0.26" # Android X