| /* |
| * 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. |
| */ |
| |
| import androidx.build.LibraryGroups |
| import androidx.build.LibraryVersions |
| import androidx.build.Publish |
| |
| import static androidx.build.dependencies.DependenciesKt.* |
| |
| plugins { |
| id('AndroidXPlugin') |
| id('com.android.library') |
| } |
| |
| android { |
| compileOptions { |
| sourceCompatibility = JavaVersion.VERSION_1_8 |
| targetCompatibility = JavaVersion.VERSION_1_8 |
| } |
| buildTypes.all { |
| // 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 { |
| cppFlags "-std=c++17" |
| arguments "-DCMAKE_VERBOSE_MAKEFILE=ON" |
| targets "icing" |
| } |
| } |
| } |
| externalNativeBuild { |
| cmake { |
| version '3.10.2' |
| path '../../../../external/icing/CMakeLists.txt' |
| } |
| } |
| } |
| |
| // Add :icing as jarjar dependency |
| android.libraryVariants.all { variant -> |
| def variantName = variant.name |
| def suffix = variantName.capitalize() |
| def jarjarConfigName = "jarjar${suffix}" |
| def jarjarConf = configurations.register(jarjarConfigName) |
| // Treat icing-java as a local jar and package it inside the aar. |
| dependencies.add(jarjarConfigName, project.dependencies.project( |
| path: ":icing", |
| configuration: jarjarConfigName)) |
| dependencies.add("${variantName}Implementation", files(jarjarConf)) |
| } |
| |
| dependencies { |
| api('androidx.annotation:annotation:1.1.0') |
| |
| implementation('androidx.collection:collection:1.1.0') |
| implementation('androidx.concurrent:concurrent-futures:1.0.0') |
| implementation('androidx.core:core:1.2.0') |
| |
| androidTestAnnotationProcessor project(':appsearch:appsearch-annotation') |
| androidTestImplementation(ANDROIDX_TEST_CORE) |
| androidTestImplementation(ANDROIDX_TEST_RULES) |
| androidTestImplementation(TRUTH) |
| //TODO(b/149787478) upgrade and link to Dependencies.kt |
| androidTestImplementation("junit:junit:4.13") |
| } |
| |
| // Create a jar for use by appsearch-annotation:test |
| android.libraryVariants.all { variant -> |
| def name = variant.name |
| def suffix = name.capitalize() |
| project.tasks.create(name: "jar${suffix}", type: Jar) { |
| dependsOn variant.javaCompileProvider.get() |
| from variant.javaCompileProvider.get().destinationDir |
| destinationDir new File(project.buildDir, "libJar") |
| } |
| } |
| |
| androidx { |
| name = 'AndroidX AppSearch' |
| publish = Publish.SNAPSHOT_AND_RELEASE |
| mavenGroup = LibraryGroups.APPSEARCH |
| mavenVersion = LibraryVersions.APPSEARCH |
| inceptionYear = '2019' |
| description = 'AndroidX AppSearch - App Indexing' |
| } |