| /* |
| * 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") |
| } |
| |
| android { |
| defaultConfig { |
| multiDexEnabled true |
| javaCompileOptions { |
| annotationProcessorOptions { |
| arguments = [ |
| "room.schemaLocation" : "$projectDir/schemas".toString(), |
| ] |
| } |
| } |
| } |
| 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.schemaLocation" : "$projectDir/schemas".toString(), |
| "room.expandProjection" : "true" |
| ] |
| } |
| } |
| } |
| withoutExpandProjection { |
| dimension "processorConfiguration" |
| javaCompileOptions { |
| annotationProcessorOptions { |
| arguments = [ |
| "room.schemaLocation" : "$projectDir/schemas".toString(), |
| "room.expandProjection" : "false" |
| ] |
| } |
| } |
| } |
| withNullAwareTypeConverter { |
| dimension "processorConfiguration" |
| javaCompileOptions { |
| annotationProcessorOptions { |
| arguments = [ |
| "room.schemaLocation" : "$projectDir/schemas".toString(), |
| "room.expandProjection" : "false", |
| "room.useNullAwareTypeAnalysis": "true" |
| ] |
| } |
| } |
| } |
| } |
| namespace "androidx.room.integration.testapp" |
| } |
| |
| dependencies { |
| implementation(project(":room:room-common")) |
| implementation(project(":room:room-runtime")) |
| implementation(projectOrArtifact(":arch:core:core-runtime")) |
| implementation(projectOrArtifact(":lifecycle:lifecycle-livedata")) |
| implementation(projectOrArtifact(":lifecycle:lifecycle-runtime")) |
| 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(project(":arch:core:core-runtime")) |
| androidTestImplementation(project(":arch:core:core-common")) |
| 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.0.1") |
| androidTestImplementation(projectOrArtifact(":paging:paging-runtime")) |
| androidTestImplementation(projectOrArtifact(":lifecycle:lifecycle-runtime")) |
| androidTestImplementation(projectOrArtifact(":lifecycle:lifecycle-runtime-testing")) |
| androidTestImplementation(projectOrArtifact(":lifecycle:lifecycle-livedata")) |
| |
| // 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.mockitoCore, excludes.bytebuddy) // DexMaker has it's own MockMaker |
| androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy) // DexMaker has it's own MockMaker |
| androidTestImplementation(project(":internal-testutils-truth")) |
| |
| |
| testImplementation(libs.junit) |
| } |
| |
| // Enable parameter names to support Room incremental when its a project() dep. |
| // See b/198431380 |
| tasks.withType(JavaCompile) { |
| options.compilerArgs << "-parameters" |
| } |