From d0537a1a4957f1424d56f3a8c96f0b9a65266b2b Mon Sep 17 00:00:00 2001 From: Derek Ellis Date: Sat, 28 Jan 2023 20:49:43 -0500 Subject: [PATCH 1/3] Use Azul JDK for toolchains --- adapters/primitive-adapters/build.gradle | 5 ++++- dialects/hsql/build.gradle | 5 ++++- dialects/mysql/build.gradle | 5 ++++- dialects/postgresql/build.gradle | 5 ++++- dialects/sqlite-3-18/build.gradle | 5 ++++- dialects/sqlite-3-24/build.gradle | 5 ++++- dialects/sqlite-3-25/build.gradle | 5 ++++- dialects/sqlite-3-30/build.gradle | 5 ++++- dialects/sqlite-3-33/build.gradle | 5 ++++- dialects/sqlite-3-35/build.gradle | 5 ++++- dialects/sqlite-3-38/build.gradle | 5 ++++- dialects/sqlite/json-module/build.gradle | 5 ++++- drivers/android-driver/build.gradle | 5 ++++- drivers/jdbc-driver/build.gradle | 5 ++++- drivers/r2dbc-driver/build.gradle | 5 ++++- drivers/sqlite-driver/build.gradle | 5 ++++- extensions/androidx-paging3/build.gradle | 5 ++++- extensions/async-extensions/build.gradle | 5 ++++- extensions/coroutines-extensions/build.gradle | 5 ++++- extensions/rxjava2-extensions/build.gradle | 5 ++++- extensions/rxjava3-extensions/build.gradle | 5 ++++- runtime/build.gradle | 5 ++++- sample/android/build.gradle | 5 ++++- sqldelight-compiler/build.gradle | 5 ++++- sqldelight-compiler/dialect/build.gradle | 5 ++++- sqldelight-compiler/integration-tests/build.gradle | 5 ++++- sqldelight-gradle-plugin/build.gradle | 5 ++++- sqldelight-idea-plugin/build.gradle | 5 ++++- sqlite-migrations/build.gradle | 5 ++++- test-util/build.gradle | 5 ++++- 30 files changed, 120 insertions(+), 30 deletions(-) diff --git a/adapters/primitive-adapters/build.gradle b/adapters/primitive-adapters/build.gradle index 1ee13887e58..5347c5728b7 100644 --- a/adapters/primitive-adapters/build.gradle +++ b/adapters/primitive-adapters/build.gradle @@ -6,7 +6,10 @@ plugins { id("app.cash.sqldelight.multiplatform") } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-primitive-adapters' diff --git a/dialects/hsql/build.gradle b/dialects/hsql/build.gradle index 787550a6a9a..6c643f77a58 100644 --- a/dialects/hsql/build.gradle +++ b/dialects/hsql/build.gradle @@ -9,7 +9,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':sqldelight-compiler:dialect') diff --git a/dialects/mysql/build.gradle b/dialects/mysql/build.gradle index ac0d61811e5..f0c2a1ea843 100644 --- a/dialects/mysql/build.gradle +++ b/dialects/mysql/build.gradle @@ -10,7 +10,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { ksp libs.moshiCodegen diff --git a/dialects/postgresql/build.gradle b/dialects/postgresql/build.gradle index 708c068e62c..b31b114e412 100644 --- a/dialects/postgresql/build.gradle +++ b/dialects/postgresql/build.gradle @@ -10,7 +10,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { ksp libs.moshiCodegen diff --git a/dialects/sqlite-3-18/build.gradle b/dialects/sqlite-3-18/build.gradle index 805d20a3992..963a9e3a4fd 100644 --- a/dialects/sqlite-3-18/build.gradle +++ b/dialects/sqlite-3-18/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':sqldelight-compiler:dialect') diff --git a/dialects/sqlite-3-24/build.gradle b/dialects/sqlite-3-24/build.gradle index ce10a07e3c8..738bae3c796 100644 --- a/dialects/sqlite-3-24/build.gradle +++ b/dialects/sqlite-3-24/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-18') diff --git a/dialects/sqlite-3-25/build.gradle b/dialects/sqlite-3-25/build.gradle index 1cfced6f28c..97043c33a72 100644 --- a/dialects/sqlite-3-25/build.gradle +++ b/dialects/sqlite-3-25/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-24') diff --git a/dialects/sqlite-3-30/build.gradle b/dialects/sqlite-3-30/build.gradle index 592f6c58c53..78e7bb0e020 100644 --- a/dialects/sqlite-3-30/build.gradle +++ b/dialects/sqlite-3-30/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-25') diff --git a/dialects/sqlite-3-33/build.gradle b/dialects/sqlite-3-33/build.gradle index 47c27029a98..00bb1a43364 100644 --- a/dialects/sqlite-3-33/build.gradle +++ b/dialects/sqlite-3-33/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-30') diff --git a/dialects/sqlite-3-35/build.gradle b/dialects/sqlite-3-35/build.gradle index 46914f4c566..2b22551c6ab 100644 --- a/dialects/sqlite-3-35/build.gradle +++ b/dialects/sqlite-3-35/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-33') diff --git a/dialects/sqlite-3-38/build.gradle b/dialects/sqlite-3-38/build.gradle index 9b388e9246a..b5490a42f82 100644 --- a/dialects/sqlite-3-38/build.gradle +++ b/dialects/sqlite-3-38/build.gradle @@ -8,7 +8,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':dialects:sqlite-3-35') diff --git a/dialects/sqlite/json-module/build.gradle b/dialects/sqlite/json-module/build.gradle index 3d08c5e8cfd..84c522f815e 100644 --- a/dialects/sqlite/json-module/build.gradle +++ b/dialects/sqlite/json-module/build.gradle @@ -9,7 +9,10 @@ grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':sqldelight-compiler:dialect') diff --git a/drivers/android-driver/build.gradle b/drivers/android-driver/build.gradle index b17a1c66491..793b4d0fd9d 100644 --- a/drivers/android-driver/build.gradle +++ b/drivers/android-driver/build.gradle @@ -5,7 +5,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-android-driver' diff --git a/drivers/jdbc-driver/build.gradle b/drivers/jdbc-driver/build.gradle index aca30023a4c..445988d7cba 100644 --- a/drivers/jdbc-driver/build.gradle +++ b/drivers/jdbc-driver/build.gradle @@ -6,7 +6,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-jdbc-driver' diff --git a/drivers/r2dbc-driver/build.gradle b/drivers/r2dbc-driver/build.gradle index 753d382a909..7f284dcf654 100644 --- a/drivers/r2dbc-driver/build.gradle +++ b/drivers/r2dbc-driver/build.gradle @@ -6,7 +6,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-r2dbc-driver' diff --git a/drivers/sqlite-driver/build.gradle b/drivers/sqlite-driver/build.gradle index 92917b55c66..2e7797ecb57 100644 --- a/drivers/sqlite-driver/build.gradle +++ b/drivers/sqlite-driver/build.gradle @@ -4,7 +4,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-sqlite-driver' diff --git a/extensions/androidx-paging3/build.gradle b/extensions/androidx-paging3/build.gradle index 3cbbac9d5c0..1c011638ed1 100755 --- a/extensions/androidx-paging3/build.gradle +++ b/extensions/androidx-paging3/build.gradle @@ -6,7 +6,10 @@ plugins { archivesBaseName = 'sqldelight-androidx-paging3' -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} kotlin { ios() diff --git a/extensions/async-extensions/build.gradle b/extensions/async-extensions/build.gradle index 99ecde08101..ccc4367464a 100644 --- a/extensions/async-extensions/build.gradle +++ b/extensions/async-extensions/build.gradle @@ -4,7 +4,10 @@ plugins { id("app.cash.sqldelight.multiplatform") } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-async-extensions' diff --git a/extensions/coroutines-extensions/build.gradle b/extensions/coroutines-extensions/build.gradle index c88b9f64c4a..cf53ccc8b24 100644 --- a/extensions/coroutines-extensions/build.gradle +++ b/extensions/coroutines-extensions/build.gradle @@ -4,7 +4,10 @@ plugins { id("app.cash.sqldelight.multiplatform") } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-coroutines-extensions' diff --git a/extensions/rxjava2-extensions/build.gradle b/extensions/rxjava2-extensions/build.gradle index 227274b2de0..ed991570d98 100644 --- a/extensions/rxjava2-extensions/build.gradle +++ b/extensions/rxjava2-extensions/build.gradle @@ -4,7 +4,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-rxjava2-extensions' diff --git a/extensions/rxjava3-extensions/build.gradle b/extensions/rxjava3-extensions/build.gradle index 784b03466f7..cbf95e0091a 100644 --- a/extensions/rxjava3-extensions/build.gradle +++ b/extensions/rxjava3-extensions/build.gradle @@ -4,7 +4,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} archivesBaseName = 'sqldelight-rxjava3-extensions' diff --git a/runtime/build.gradle b/runtime/build.gradle index fc97e99df13..ed08470dc3e 100644 --- a/runtime/build.gradle +++ b/runtime/build.gradle @@ -9,7 +9,10 @@ sourceSets { main } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} kotlin { mingwX86() diff --git a/sample/android/build.gradle b/sample/android/build.gradle index 9fc00e8dbe8..c32bf48ee3d 100644 --- a/sample/android/build.gradle +++ b/sample/android/build.gradle @@ -3,7 +3,10 @@ plugins { alias(libs.plugins.kotlin.android) } -kotlin.jvmToolchain(8) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + vendor.set(JvmVendorSpec.AZUL) +} android { compileSdk libs.versions.compileSdk.get() as int diff --git a/sqldelight-compiler/build.gradle b/sqldelight-compiler/build.gradle index 5e392eae524..5e7843df0da 100644 --- a/sqldelight-compiler/build.gradle +++ b/sqldelight-compiler/build.gradle @@ -15,7 +15,10 @@ tasks.named('test') { } } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} sourceSets { main.java.srcDir "gen" diff --git a/sqldelight-compiler/dialect/build.gradle b/sqldelight-compiler/dialect/build.gradle index ca080c0070c..2155271d91b 100644 --- a/sqldelight-compiler/dialect/build.gradle +++ b/sqldelight-compiler/dialect/build.gradle @@ -4,7 +4,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api libs.sqlPsi diff --git a/sqldelight-compiler/integration-tests/build.gradle b/sqldelight-compiler/integration-tests/build.gradle index 1fe85343220..5d387ad1c49 100644 --- a/sqldelight-compiler/integration-tests/build.gradle +++ b/sqldelight-compiler/integration-tests/build.gradle @@ -2,7 +2,10 @@ plugins { alias(libs.plugins.kotlin.jvm) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { testImplementation project(':runtime') diff --git a/sqldelight-gradle-plugin/build.gradle b/sqldelight-gradle-plugin/build.gradle index 5dfc7a29a9d..8ed0a3478a0 100644 --- a/sqldelight-gradle-plugin/build.gradle +++ b/sqldelight-gradle-plugin/build.gradle @@ -9,7 +9,10 @@ plugins { id("jvm-test-suite") } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} testing { suites { diff --git a/sqldelight-idea-plugin/build.gradle b/sqldelight-idea-plugin/build.gradle index 4b75ed1c881..f021faf4630 100644 --- a/sqldelight-idea-plugin/build.gradle +++ b/sqldelight-idea-plugin/build.gradle @@ -7,7 +7,10 @@ plugins { alias(libs.plugins.ksp) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} intellij { updateSinceUntilBuild = false diff --git a/sqlite-migrations/build.gradle b/sqlite-migrations/build.gradle index 2a3f63ff869..cec3a327af3 100644 --- a/sqlite-migrations/build.gradle +++ b/sqlite-migrations/build.gradle @@ -4,7 +4,10 @@ plugins { alias(libs.plugins.dokka) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { // These dependencies will not be shadowed by sqldelight-gradle-plugin diff --git a/test-util/build.gradle b/test-util/build.gradle index 5430cf1a673..2fc925254bf 100644 --- a/test-util/build.gradle +++ b/test-util/build.gradle @@ -2,7 +2,10 @@ plugins { alias(libs.plugins.kotlin.jvm) } -kotlin.jvmToolchain(11) +kotlin.jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + vendor.set(JvmVendorSpec.AZUL) +} dependencies { api project(':sqldelight-compiler') From ed3e020f6bebb8292384f1b1d2c703d29f8b8b88 Mon Sep 17 00:00:00 2001 From: Derek Ellis Date: Sun, 29 Jan 2023 15:25:53 -0500 Subject: [PATCH 2/3] Add foojay-resolved-convention plugin --- settings.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.gradle b/settings.gradle index 3cf5edfcd4a..fbe14275ad8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,6 +10,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.12.3" + id "org.gradle.toolchains.foojay-resolver-convention" version "0.4.0" } gradleEnterprise { From af6de5ba7165a435046880580c9efd6e996b1214 Mon Sep 17 00:00:00 2001 From: Derek Ellis Date: Sat, 25 Feb 2023 20:15:20 -0500 Subject: [PATCH 3/3] Create convention plugin(s) for jvm toolchain --- adapters/primitive-adapters/build.gradle | 6 +----- buildLogic/settings.gradle | 3 ++- buildLogic/toolchain-convention/build.gradle | 21 +++++++++++++++++++ .../toolchain/ToolchainConventions.kt | 20 ++++++++++++++++++ dialects/hsql/build.gradle | 6 +----- dialects/mysql/build.gradle | 6 +----- dialects/postgresql/build.gradle | 6 +----- dialects/sqlite-3-18/build.gradle | 6 +----- dialects/sqlite-3-24/build.gradle | 6 +----- dialects/sqlite-3-25/build.gradle | 6 +----- dialects/sqlite-3-30/build.gradle | 6 +----- dialects/sqlite-3-33/build.gradle | 6 +----- dialects/sqlite-3-35/build.gradle | 6 +----- dialects/sqlite-3-38/build.gradle | 6 +----- dialects/sqlite/json-module/build.gradle | 6 +----- drivers/android-driver/build.gradle | 6 +----- drivers/driver-test/build.gradle | 3 +-- drivers/jdbc-driver/build.gradle | 8 +------ drivers/r2dbc-driver/build.gradle | 6 +----- drivers/sqlite-driver/build.gradle | 6 +----- extensions/androidx-paging3/build.gradle | 6 +----- extensions/async-extensions/build.gradle | 6 +----- extensions/coroutines-extensions/build.gradle | 6 +----- extensions/rxjava2-extensions/build.gradle | 6 +----- extensions/rxjava3-extensions/build.gradle | 6 +----- runtime/build.gradle | 6 +----- sqldelight-compiler/build.gradle | 6 +----- sqldelight-compiler/dialect/build.gradle | 6 +----- .../integration-tests/build.gradle | 6 +----- sqldelight-gradle-plugin/build.gradle | 6 +----- sqldelight-idea-plugin/build.gradle | 6 +----- sqlite-migrations/build.gradle | 6 +----- test-util/build.gradle | 6 +----- 33 files changed, 73 insertions(+), 150 deletions(-) create mode 100644 buildLogic/toolchain-convention/build.gradle create mode 100644 buildLogic/toolchain-convention/src/main/kotlin/app/cash/sqldelight/toolchain/ToolchainConventions.kt diff --git a/adapters/primitive-adapters/build.gradle b/adapters/primitive-adapters/build.gradle index 5347c5728b7..c9492d79c9b 100644 --- a/adapters/primitive-adapters/build.gradle +++ b/adapters/primitive-adapters/build.gradle @@ -4,11 +4,7 @@ plugins { alias(libs.plugins.publish) alias(libs.plugins.dokka) id("app.cash.sqldelight.multiplatform") -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-primitive-adapters' diff --git a/buildLogic/settings.gradle b/buildLogic/settings.gradle index 38a3ecf5d7d..fe8777dc7d8 100644 --- a/buildLogic/settings.gradle +++ b/buildLogic/settings.gradle @@ -18,4 +18,5 @@ dependencyResolutionManagement { } } -include(":multiplatform-convention") \ No newline at end of file +include(":multiplatform-convention") +include(":toolchain-convention") diff --git a/buildLogic/toolchain-convention/build.gradle b/buildLogic/toolchain-convention/build.gradle new file mode 100644 index 00000000000..049de9edc3a --- /dev/null +++ b/buildLogic/toolchain-convention/build.gradle @@ -0,0 +1,21 @@ +plugins { + alias(libs.plugins.kotlin.jvm) + id("java-gradle-plugin") +} + +gradlePlugin { + plugins { + runtime { + id = "app.cash.sqldelight.toolchain.runtime" + implementationClass = "app.cash.sqldelight.toolchain.RuntimeToolchainConventions" + } + compiler { + id = "app.cash.sqldelight.toolchain.compiler" + implementationClass = "app.cash.sqldelight.toolchain.CompilerToolchainConventions" + } + } +} + +dependencies { + compileOnly libs.kotlin.plugin +} diff --git a/buildLogic/toolchain-convention/src/main/kotlin/app/cash/sqldelight/toolchain/ToolchainConventions.kt b/buildLogic/toolchain-convention/src/main/kotlin/app/cash/sqldelight/toolchain/ToolchainConventions.kt new file mode 100644 index 00000000000..813a49ca57e --- /dev/null +++ b/buildLogic/toolchain-convention/src/main/kotlin/app/cash/sqldelight/toolchain/ToolchainConventions.kt @@ -0,0 +1,20 @@ +package app.cash.sqldelight.toolchain + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.jvm.toolchain.JavaLanguageVersion +import org.gradle.jvm.toolchain.JvmVendorSpec +import org.jetbrains.kotlin.gradle.dsl.kotlinExtension + +abstract class ToolchainConventions(private val jdkVersion: Int) : Plugin { + override fun apply(project: Project) { + project.kotlinExtension.jvmToolchain { spec -> + spec.languageVersion.set(JavaLanguageVersion.of(jdkVersion)) + spec.vendor.set(JvmVendorSpec.AZUL) + } + } +} + +class RuntimeToolchainConventions : ToolchainConventions(8) + +class CompilerToolchainConventions : ToolchainConventions(11) diff --git a/dialects/hsql/build.gradle b/dialects/hsql/build.gradle index 6c643f77a58..710ff837414 100644 --- a/dialects/hsql/build.gradle +++ b/dialects/hsql/build.gradle @@ -3,17 +3,13 @@ plugins { alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':sqldelight-compiler:dialect') diff --git a/dialects/mysql/build.gradle b/dialects/mysql/build.gradle index f0c2a1ea843..1e8f63a95bf 100644 --- a/dialects/mysql/build.gradle +++ b/dialects/mysql/build.gradle @@ -4,17 +4,13 @@ plugins { alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { ksp libs.moshiCodegen diff --git a/dialects/postgresql/build.gradle b/dialects/postgresql/build.gradle index b31b114e412..5c58dc433a2 100644 --- a/dialects/postgresql/build.gradle +++ b/dialects/postgresql/build.gradle @@ -4,17 +4,13 @@ plugins { alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { ksp libs.moshiCodegen diff --git a/dialects/sqlite-3-18/build.gradle b/dialects/sqlite-3-18/build.gradle index 963a9e3a4fd..cc2af5e82d7 100644 --- a/dialects/sqlite-3-18/build.gradle +++ b/dialects/sqlite-3-18/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':sqldelight-compiler:dialect') diff --git a/dialects/sqlite-3-24/build.gradle b/dialects/sqlite-3-24/build.gradle index 738bae3c796..3fc03def5a7 100644 --- a/dialects/sqlite-3-24/build.gradle +++ b/dialects/sqlite-3-24/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-18') diff --git a/dialects/sqlite-3-25/build.gradle b/dialects/sqlite-3-25/build.gradle index 97043c33a72..2bb0ae9efa3 100644 --- a/dialects/sqlite-3-25/build.gradle +++ b/dialects/sqlite-3-25/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-24') diff --git a/dialects/sqlite-3-30/build.gradle b/dialects/sqlite-3-30/build.gradle index 78e7bb0e020..ccd38868284 100644 --- a/dialects/sqlite-3-30/build.gradle +++ b/dialects/sqlite-3-30/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-25') diff --git a/dialects/sqlite-3-33/build.gradle b/dialects/sqlite-3-33/build.gradle index 00bb1a43364..757e089a0c0 100644 --- a/dialects/sqlite-3-33/build.gradle +++ b/dialects/sqlite-3-33/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-30') diff --git a/dialects/sqlite-3-35/build.gradle b/dialects/sqlite-3-35/build.gradle index 2b22551c6ab..88d63372f29 100644 --- a/dialects/sqlite-3-35/build.gradle +++ b/dialects/sqlite-3-35/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-33') diff --git a/dialects/sqlite-3-38/build.gradle b/dialects/sqlite-3-38/build.gradle index b5490a42f82..a9965c14c52 100644 --- a/dialects/sqlite-3-38/build.gradle +++ b/dialects/sqlite-3-38/build.gradle @@ -2,17 +2,13 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':dialects:sqlite-3-35') diff --git a/dialects/sqlite/json-module/build.gradle b/dialects/sqlite/json-module/build.gradle index 84c522f815e..9fdc733582b 100644 --- a/dialects/sqlite/json-module/build.gradle +++ b/dialects/sqlite/json-module/build.gradle @@ -3,17 +3,13 @@ plugins { alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.compiler") } grammarKit { intellijRelease.set(libs.versions.idea) } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - dependencies { api project(':sqldelight-compiler:dialect') diff --git a/drivers/android-driver/build.gradle b/drivers/android-driver/build.gradle index 793b4d0fd9d..5845d577eac 100644 --- a/drivers/android-driver/build.gradle +++ b/drivers/android-driver/build.gradle @@ -3,11 +3,7 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-android-driver' diff --git a/drivers/driver-test/build.gradle b/drivers/driver-test/build.gradle index bf73c26d406..814ed263c4f 100644 --- a/drivers/driver-test/build.gradle +++ b/drivers/driver-test/build.gradle @@ -1,5 +1,6 @@ plugins { id("app.cash.sqldelight.multiplatform") + id("app.cash.sqldelight.toolchain.runtime") } // https://youtrack.jetbrains.com/issue/KTIJ-14471 @@ -8,8 +9,6 @@ sourceSets { } kotlin { - jvmToolchain(8) - mingwX86() sourceSets { diff --git a/drivers/jdbc-driver/build.gradle b/drivers/jdbc-driver/build.gradle index 445988d7cba..f6c91f154c9 100644 --- a/drivers/jdbc-driver/build.gradle +++ b/drivers/jdbc-driver/build.gradle @@ -1,14 +1,8 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile - plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-jdbc-driver' diff --git a/drivers/r2dbc-driver/build.gradle b/drivers/r2dbc-driver/build.gradle index 7f284dcf654..0ccb76fd172 100644 --- a/drivers/r2dbc-driver/build.gradle +++ b/drivers/r2dbc-driver/build.gradle @@ -4,11 +4,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-r2dbc-driver' diff --git a/drivers/sqlite-driver/build.gradle b/drivers/sqlite-driver/build.gradle index 2e7797ecb57..2a31f4eead5 100644 --- a/drivers/sqlite-driver/build.gradle +++ b/drivers/sqlite-driver/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-sqlite-driver' diff --git a/extensions/androidx-paging3/build.gradle b/extensions/androidx-paging3/build.gradle index 1c011638ed1..efa443e5112 100755 --- a/extensions/androidx-paging3/build.gradle +++ b/extensions/androidx-paging3/build.gradle @@ -2,15 +2,11 @@ plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-androidx-paging3' -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) -} - kotlin { ios() jvm() diff --git a/extensions/async-extensions/build.gradle b/extensions/async-extensions/build.gradle index ccc4367464a..0fe6766a383 100644 --- a/extensions/async-extensions/build.gradle +++ b/extensions/async-extensions/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.publish) alias(libs.plugins.dokka) id("app.cash.sqldelight.multiplatform") -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-async-extensions' diff --git a/extensions/coroutines-extensions/build.gradle b/extensions/coroutines-extensions/build.gradle index cf53ccc8b24..8b70bf748b5 100644 --- a/extensions/coroutines-extensions/build.gradle +++ b/extensions/coroutines-extensions/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.publish) alias(libs.plugins.dokka) id("app.cash.sqldelight.multiplatform") -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-coroutines-extensions' diff --git a/extensions/rxjava2-extensions/build.gradle b/extensions/rxjava2-extensions/build.gradle index ed991570d98..560bd1c32ca 100644 --- a/extensions/rxjava2-extensions/build.gradle +++ b/extensions/rxjava2-extensions/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-rxjava2-extensions' diff --git a/extensions/rxjava3-extensions/build.gradle b/extensions/rxjava3-extensions/build.gradle index cbf95e0091a..f0de9ab52c8 100644 --- a/extensions/rxjava3-extensions/build.gradle +++ b/extensions/rxjava3-extensions/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.runtime") } archivesBaseName = 'sqldelight-rxjava3-extensions' diff --git a/runtime/build.gradle b/runtime/build.gradle index ed08470dc3e..d14ce51f71a 100644 --- a/runtime/build.gradle +++ b/runtime/build.gradle @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.publish) alias(libs.plugins.dokka) id("app.cash.sqldelight.multiplatform") + id("app.cash.sqldelight.toolchain.runtime") } // https://youtrack.jetbrains.com/issue/KTIJ-14471 @@ -9,11 +10,6 @@ sourceSets { main } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - vendor.set(JvmVendorSpec.AZUL) -} - kotlin { mingwX86() diff --git a/sqldelight-compiler/build.gradle b/sqldelight-compiler/build.gradle index 5e7843df0da..bf697e1d347 100644 --- a/sqldelight-compiler/build.gradle +++ b/sqldelight-compiler/build.gradle @@ -3,6 +3,7 @@ plugins { alias(libs.plugins.grammarKitComposer) alias(libs.plugins.publish) alias(libs.plugins.dokka) + id("app.cash.sqldelight.toolchain.compiler") } tasks.named('test') { @@ -15,11 +16,6 @@ tasks.named('test') { } } -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) -} - sourceSets { main.java.srcDir "gen" } diff --git a/sqldelight-compiler/dialect/build.gradle b/sqldelight-compiler/dialect/build.gradle index 2155271d91b..211777667a6 100644 --- a/sqldelight-compiler/dialect/build.gradle +++ b/sqldelight-compiler/dialect/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } dependencies { diff --git a/sqldelight-compiler/integration-tests/build.gradle b/sqldelight-compiler/integration-tests/build.gradle index 5d387ad1c49..adedb23088b 100644 --- a/sqldelight-compiler/integration-tests/build.gradle +++ b/sqldelight-compiler/integration-tests/build.gradle @@ -1,10 +1,6 @@ plugins { alias(libs.plugins.kotlin.jvm) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } dependencies { diff --git a/sqldelight-gradle-plugin/build.gradle b/sqldelight-gradle-plugin/build.gradle index 8ed0a3478a0..3cf93acc33c 100644 --- a/sqldelight-gradle-plugin/build.gradle +++ b/sqldelight-gradle-plugin/build.gradle @@ -7,11 +7,7 @@ plugins { alias(libs.plugins.dokka) id("java-gradle-plugin") id("jvm-test-suite") -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } testing { diff --git a/sqldelight-idea-plugin/build.gradle b/sqldelight-idea-plugin/build.gradle index f021faf4630..b6a3586e71f 100644 --- a/sqldelight-idea-plugin/build.gradle +++ b/sqldelight-idea-plugin/build.gradle @@ -5,11 +5,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.changelog) alias(libs.plugins.ksp) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } intellij { diff --git a/sqlite-migrations/build.gradle b/sqlite-migrations/build.gradle index cec3a327af3..dcc262672cd 100644 --- a/sqlite-migrations/build.gradle +++ b/sqlite-migrations/build.gradle @@ -2,11 +2,7 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.publish) alias(libs.plugins.dokka) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } dependencies { diff --git a/test-util/build.gradle b/test-util/build.gradle index 2fc925254bf..a7c9ef9535c 100644 --- a/test-util/build.gradle +++ b/test-util/build.gradle @@ -1,10 +1,6 @@ plugins { alias(libs.plugins.kotlin.jvm) -} - -kotlin.jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(11)) - vendor.set(JvmVendorSpec.AZUL) + id("app.cash.sqldelight.toolchain.compiler") } dependencies {