[go: nahoru, domu]

blob: 92dc7b3a9eacc06d9704e228b7d41403d3d38d20 [file] [log] [blame]
/*
* 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'
}