| /* |
| * Copyright (C) 2019 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. |
| */ |
| |
| /** |
| * This file was created using the `create_project.py` script located in the |
| * `<AndroidX root>/development/project-creator` directory. |
| * |
| * Please use that script when creating a new project, rather than copying an existing project and |
| * modifying its settings. |
| */ |
| import androidx.build.BundleInsideHelper |
| import androidx.build.LibraryType |
| |
| plugins { |
| id("AndroidXPlugin") |
| id("com.android.library") |
| } |
| |
| android { |
| compileSdk = 35 |
| compileOptions { |
| sourceCompatibility = JavaVersion.VERSION_1_8 |
| targetCompatibility = JavaVersion.VERSION_1_8 |
| } |
| buildTypes.configureEach { |
| // TODO(b/161836669): Minifiation is currently disabled because if it is on, the aar gets |
| // desugared twice in some workflows, which fails. Decide how to handle this (e.g. |
| // splitting targets, continuing with the consumerProguardFiles solution here, fixing the |
| // flows that perform duplicate desugaring, or something else). |
| minifyEnabled = false |
| consumerProguardFiles "proguard-rules.pro" |
| } |
| // TODO(b/161205849): We've had to move libicing.so compilation into appsearch:appsearch to get |
| // it included into the exported aar. Find a proper solution for bundling libicing.so into |
| // appsearch-release.aar and move compilation of libicing.so back into the external/icing tree. |
| sourceSets { |
| androidTest.java.srcDir "../../../../external/icing/java/tests/instrumentation/" |
| } |
| defaultConfig { |
| externalNativeBuild { |
| cmake { |
| arguments "-DCMAKE_VERBOSE_MAKEFILE=ON" |
| targets "icing" |
| } |
| } |
| } |
| externalNativeBuild { |
| cmake { |
| version = libs.versions.cmake.get() |
| path "../../../../external/icing/CMakeLists.txt" |
| } |
| } |
| namespace = "androidx.appsearch.localstorage" |
| } |
| |
| // Bundles dependency in bundleInside() inside of the libs/ directory of the aar. |
| BundleInsideHelper.forInsideAar( |
| project, |
| /* relocations = */ null, |
| /* dropResourcesWithSuffix = */ null |
| ) |
| |
| dependencies { |
| api(libs.jspecify) |
| api("androidx.annotation:annotation:1.8.1") |
| |
| // icing project brings in repackaged protos only (not the runtime lib) |
| bundleInside(project(":icing")) |
| |
| // Repackaged protobufLite brought in by |
| // project(":appsearch:appsearch-external-protobuf") and used at runtime |
| implementation(project(":appsearch:appsearch-external-protobuf")) |
| implementation(project(":appsearch:appsearch")) |
| implementation("androidx.collection:collection:1.4.2") |
| implementation("androidx.concurrent:concurrent-futures:1.0.0") |
| implementation("androidx.core:core:1.6.0") |
| |
| androidTestImplementation(project(":appsearch:appsearch-test-util")) |
| androidTestImplementation(libs.testCore) |
| androidTestImplementation(libs.testRules) |
| androidTestImplementation(libs.truth) |
| androidTestImplementation(libs.mockitoAndroid) |
| androidTestImplementation(libs.junit) |
| } |
| |
| androidx { |
| name = "AppSearch Local Storage" |
| type = LibraryType.PUBLISHED_LIBRARY |
| inceptionYear = "2020" |
| description = |
| "An implementation of AppSearchSession which uses local app storage and a local copy of " + |
| "the search library" |
| } |