/* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import androidx.build.LibraryType import androidx.build.Publish plugins { id("AndroidXPlugin") id("com.android.library") id("kotlin-android") } // If set to `true`, we'll use KSP instead of KAPT. // Note that the CI does not run tests with KSP yet so this is only for local usage. // Once variants are properly supported by both ksp and AndroidX, we'll add support for this. // (b/153917176) def useKsp = project.properties.getOrDefault("useKsp", "false").toBoolean() if (useKsp) { apply plugin: "com.google.devtools.ksp" } else { apply plugin: "kotlin-kapt" } android { defaultConfig { multiDexEnabled true } namespace "androidx.room.paging" } dependencies { api(libs.kotlinStdlib) api(project(":room:room-runtime")) implementation(project(":room:room-ktx")) api("androidx.paging:paging-common:3.1.1") androidTestImplementation(libs.kotlinCoroutinesTest) androidTestImplementation(libs.multidex) androidTestImplementation(libs.kotlinTestJunit) androidTestImplementation(libs.junit) androidTestImplementation(libs.testExtJunit) androidTestImplementation(libs.testCore) androidTestImplementation(libs.testRunner) // depend on the shadowed version so that it tests with the shipped artifact // this is a temporary attribute until KSP and AndroidX plugin supports variants. // addendum -- shadowAndImplementation removed if (useKsp) { kspAndroidTest( project(path: ":room:room-compiler") ) } else { kaptAndroidTest( project(path: ":room:room-compiler") ) } androidTestImplementation(libs.truth) androidTestImplementation("androidx.arch.core:core-testing:2.0.1") androidTestImplementation(project(":internal-testutils-common")) } // Allow usage of Kotlin's @OptIn. tasks.withType(KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += ["-opt-in=kotlin.RequiresOptIn"] } } androidx { name = "Room Paging" type = LibraryType.PUBLISHED_LIBRARY mavenGroup = LibraryGroups.ROOM inceptionYear = "2021" description = "Room Paging integration" publish = Publish.SNAPSHOT_AND_RELEASE }