Upgrade Room Gradle Plugin the latest version that is a HEAD.
Also updates the KMP test app to use the plugin.
Bug: 299168035
Test: Existing tests
Change-Id: Ib265171d9ce66d36682bb8f07738520f1521f8eb
diff --git a/buildSrc/imports/room-gradle-plugin/build.gradle b/buildSrc/imports/room-gradle-plugin/build.gradle
new file mode 100644
index 0000000..698ee14
--- /dev/null
+++ b/buildSrc/imports/room-gradle-plugin/build.gradle
@@ -0,0 +1,21 @@
+apply from: "../../shared.gradle"
+apply plugin: "java-gradle-plugin"
+
+sourceSets {
+ main.java.srcDirs += "${supportRootFolder}/room/room-gradle-plugin/src/main/java"
+ main.resources.srcDirs += "${supportRootFolder}/room/room-gradle-plugin/src/main" +
+ "/resources"
+}
+
+gradlePlugin {
+ plugins {
+ room {
+ id = "androidx.room"
+ implementationClass = "androidx.room.gradle.RoomGradlePlugin"
+ }
+ }
+}
+
+validatePlugins {
+ enableStricterValidation = true
+}
diff --git a/buildSrc/plugins/build.gradle b/buildSrc/plugins/build.gradle
index d09f782..38dc7de 100644
--- a/buildSrc/plugins/build.gradle
+++ b/buildSrc/plugins/build.gradle
@@ -8,6 +8,7 @@
api project(":imports:compose-icons")
api project(":imports:glance-layout-generator")
api project(":imports:inspection-gradle-plugin")
+ api project(":imports:room-gradle-plugin")
api project(":imports:stableaidl-gradle-plugin")
}
diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle
index 68c8582..4abc377 100644
--- a/buildSrc/settings.gradle
+++ b/buildSrc/settings.gradle
@@ -22,6 +22,7 @@
include ":imports:benchmark-darwin-plugin"
include ":imports:baseline-profile-gradle-plugin"
include ":imports:inspection-gradle-plugin"
+include ":imports:room-gradle-plugin"
include ":imports:compose-icons"
include ":imports:glance-layout-generator"
include ":imports:stableaidl-gradle-plugin"
diff --git a/buildSrc/shared-dependencies.gradle b/buildSrc/shared-dependencies.gradle
index bd16885..85b9b6d 100644
--- a/buildSrc/shared-dependencies.gradle
+++ b/buildSrc/shared-dependencies.gradle
@@ -22,6 +22,9 @@
implementation(libs.androidKotlinMultiplatform)
implementation(libs.kotlinCompilerEmbeddable) // for clang compiler
+ // For Room Gradle Plugin
+ implementation(libs.kspGradlePluginz)
+
// Force jsoup upgrade on spdx (b/309773103)
implementation(libs.jsoup)
@@ -54,7 +57,5 @@
// root project doesn't need to re-resolve them and their dependencies on every build
runtimeOnly(libs.hiltAndroidGradlePluginz)
runtimeOnly(libs.javapoet) // for hiltAndroidGradlePluginz to workaround https://github.com/google/dagger/issues/3068
- runtimeOnly(libs.kspGradlePluginz)
runtimeOnly(libs.wireGradlePluginz)
- runtimeOnly(libs.roomGradlePlugin)
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index f58e919..365eaae 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -252,7 +252,6 @@
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
retrofitConverterWire = { module = "com.squareup.retrofit2:converter-wire", version.ref = "retrofit" }
robolectric = { module = "org.robolectric:robolectric", version = "4.11.1" }
-roomGradlePlugin = { module = "androidx.room:room-gradle-plugin", version = "2.6.0" }
rxjava2 = { module = "io.reactivex.rxjava2:rxjava", version = "2.2.9" }
rxjava3 = { module = "io.reactivex.rxjava3:rxjava", version = "3.0.0" }
shadow = { module = "com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin", version = "8.1.1" }
diff --git a/room/integration-tests/multiplatformtestapp/build.gradle b/room/integration-tests/multiplatformtestapp/build.gradle
index 9b66b89..dfd48c4 100644
--- a/room/integration-tests/multiplatformtestapp/build.gradle
+++ b/room/integration-tests/multiplatformtestapp/build.gradle
@@ -20,6 +20,7 @@
id("AndroidXPlugin")
id("com.android.library")
id("com.google.devtools.ksp")
+ id("androidx.room")
}
// Disabled due to https://youtrack.jetbrains.com/issue/KT-65761
@@ -83,10 +84,13 @@
}
}
-ksp {
- arg("room.generateKotlin", "true")
-}
-
android {
namespace "androidx.room.integration.multiplatformtestapp"
}
+
+room {
+ schemaDirectory(
+ provider { layout.projectDirectory.dir("schemas-ksp").getAsFile().getAbsolutePath() }
+ )
+ generateKotlin = true
+}
diff --git a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomArgumentProvider.kt b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomArgumentProvider.kt
index 8d474b8..f5f8521 100644
--- a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomArgumentProvider.kt
+++ b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomArgumentProvider.kt
@@ -21,6 +21,7 @@
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Nested
+import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
@@ -41,13 +42,16 @@
val prefix = if (forKsp) "" else "-A"
add("${prefix}room.internal.schemaInput=${schemaInputDir.get().asFile.path}")
add("${prefix}room.internal.schemaOutput=${schemaOutputDir.get().asFile.path}")
- add("${prefix}room.generateKotlin=${options.generateKotlin}")
+ if (options.generateKotlin != null) {
+ add("${prefix}room.generateKotlin=${options.generateKotlin}")
+ }
}
}
class RoomOptions(
+ @Optional
@get:Input
- val generateKotlin: Boolean
+ val generateKotlin: Boolean?
)
internal fun RoomExtension.toOptions(): RoomOptions {
diff --git a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomExtension.kt b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomExtension.kt
index 5fd9944..6965972 100644
--- a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomExtension.kt
+++ b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/RoomExtension.kt
@@ -146,7 +146,7 @@
/**
* Causes Room annotation processor to generate Kotlin code instead of Java.
*/
- open var generateKotlin: Boolean = false
+ open var generateKotlin: Boolean? = null
/**
* Represent a full Android variant name (demoDebug), flavor name (demo), build type
diff --git a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/integration/AndroidPluginIntegration.kt b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/integration/AndroidPluginIntegration.kt
index 7238157..fddb68a 100644
--- a/room/room-gradle-plugin/src/main/java/androidx/room/gradle/integration/AndroidPluginIntegration.kt
+++ b/room/room-gradle-plugin/src/main/java/androidx/room/gradle/integration/AndroidPluginIntegration.kt
@@ -65,6 +65,8 @@
"Use the `room { schemaDirectory(...) }` DSL to specify one."
}
configureAndroidVariant(project, roomExtension, variant)
+ @Suppress("DEPRECATION")
+ // TODO(b/328835662): Remove usage of deprecated API
variant.unitTest?.let { configureAndroidVariant(project, roomExtension, it) }
if (variant is HasAndroidTest) {
variant.androidTest?.let { configureAndroidVariant(project, roomExtension, it) }