blob: 55d66087a32ca9d43f4fcaa202c17ce72db3a2db [file] [log] [blame]
/*
* Copyright (C) 2017 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.
*/
buildscript {
// TODO: Remove this when this test app no longer depends on 1.0.0 of vectordrawable-animated.
// vectordrawable and vectordrawable-animated were accidentally using the same package name
// which is no longer valid in namespaced resource world.
project.ext["android.uniquePackageNames"] = false
}
plugins {
id("AndroidXPlugin")
id("com.android.application")
id("androidx.room")
}
android {
defaultConfig {
multiDexEnabled true
}
buildFeatures {
aidl = true
}
buildTypes.all {
// Need to make sure certain classes are put in primary dex as they're used early in
// process creation, and would fail to load on non-native-multidex API versions
multiDexKeepProguard file('multidex-rules.pro')
}
sourceSets {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
androidTest.assets.srcDirs += files("$projectDir/databases".toString())
}
flavorDimensions "processorConfiguration"
productFlavors {
withExpandProjection {
dimension "processorConfiguration"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.expandProjection" : "true"]
}
}
}
withoutExpandProjection {
dimension "processorConfiguration"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.expandProjection" : "false"]
}
}
}
withNullAwareTypeConverter {
dimension "processorConfiguration"
javaCompileOptions {
annotationProcessorOptions {
arguments = [
"room.expandProjection" : "false",
"room.useNullAwareTypeAnalysis": "true"
]
}
}
}
}
compileOptions {
coreLibraryDesugaringEnabled true
}
namespace "androidx.room.integration.testapp"
}
dependencies {
coreLibraryDesugaring(libs.desugarJdkLibs)
implementation(project(":room:room-common"))
implementation(project(":room:room-runtime"))
implementation("androidx.arch.core:core-runtime:2.2.0")
implementation("androidx.lifecycle:lifecycle-livedata:2.6.1")
implementation("androidx.lifecycle:lifecycle-runtime:2.6.1")
implementation(libs.multidex)
// Workaround for b/191286558.
implementation(project(":annotation:annotation-experimental"))
// libs.findbugs dependency resolves an app/testapp version conflict.
implementation(libs.findbugs)
implementation("androidx.recyclerview:recyclerview:1.0.0")
implementation("androidx.appcompat:appcompat:1.3.1")
// use the shadowed dependency in tests so that if the shadowing does not work properly,
// our tests fail.
annotationProcessor project(path: ":room:room-compiler",
configuration: "shadowAndImplementation")
androidTestAnnotationProcessor project(path: ":room:room-compiler",
configuration: "shadowAndImplementation")
androidTestImplementation(project(":annotation:annotation-experimental"))
androidTestImplementation("androidx.arch.core:core-runtime:2.2.0")
androidTestImplementation("androidx.arch.core:core-common:2.2.0")
androidTestImplementation(project(":room:room-testing"))
androidTestImplementation(project(":room:room-rxjava2"))
androidTestImplementation(project(":room:room-rxjava3"))
androidTestImplementation(project(":room:room-guava"))
androidTestImplementation(project(":room:room-paging"))
androidTestImplementation("androidx.arch.core:core-testing:2.2.0")
androidTestImplementation(projectOrArtifact(":paging:paging-runtime"))
androidTestImplementation("androidx.lifecycle:lifecycle-runtime:2.6.1")
androidTestImplementation("androidx.lifecycle:lifecycle-runtime-testing:2.6.1")
androidTestImplementation("androidx.lifecycle:lifecycle-livedata:2.6.1")
// guavaAndroid is a implementation dependency instead of androidTestImplementation because
// if it's in the androidTest apk it causes the test APK to be multidex in ways that break
// non-native multidex (< API 21). This should be changed back to androidTestImplementation
// once this app is minApi 21
implementation(libs.guavaAndroid)
// libs.findbugs dependency resolves an app/testapp version conflict.
androidTestImplementation(libs.findbugs)
androidTestImplementation(libs.rxjava2)
androidTestImplementation(libs.rxjava3)
androidTestImplementation(libs.testExtJunit)
androidTestImplementation(libs.testCore)
androidTestImplementation(libs.testRunner)
androidTestImplementation(libs.testRules)
androidTestImplementation(libs.espressoCore)
androidTestImplementation(libs.truth)
androidTestImplementation(libs.mockitoCore4)
androidTestImplementation(libs.dexmakerMockito)
androidTestImplementation(project(":internal-testutils-truth"))
testImplementation(libs.junit)
}
room {
schemaDirectory(
provider { layout.projectDirectory.dir("schemas").getAsFile().getAbsolutePath() }
)
}
// Enable parameter names to support Room incremental when its a project() dep.
// See b/198431380
tasks.withType(JavaCompile) {
options.compilerArgs << "-parameters"
}