blob: bcdc4c1fe39b5eaab1e9b11dc134b24b2ba2bba5 [file] [log] [blame]
/*
* Copyright 2020 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.Publish
import androidx.build.RunApiTasks
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("AndroidXPlugin")
id("com.android.library")
id("kotlin-android")
id("kotlin-kapt")
}
apply from: "dependencies.gradle"
dependencies {
// NOTE: API and IMPLEMENTATION dependencies are defined in dependencies.gradle to export for
// other modules depending on the jarjar variant of CameraPipe. All dependencies should be
// added there rather than directly here.
api(CAMERA_PIPE_DEPS.API)
implementation(CAMERA_PIPE_DEPS.IMPLEMENTATION)
kapt(libs.daggerCompiler)
testImplementation(libs.testCore)
testImplementation(libs.testRunner)
testImplementation(libs.junit)
testImplementation(libs.truth)
testImplementation(libs.robolectric)
testImplementation(libs.kotlinCoroutinesTest)
testImplementation(libs.mockitoCore4)
testImplementation(libs.mockitoKotlin4)
testImplementation(project(":camera:camera-camera2-pipe-testing"))
testImplementation(project(":internal-testutils-truth"))
kaptTest(libs.daggerCompiler)
androidTestImplementation(libs.testExtJunit)
androidTestImplementation(libs.testRunner)
androidTestImplementation(libs.truth)
}
android {
lintOptions {
enable 'CameraXQuirksClassDetector'
}
// Use Robolectric 4.+
testOptions.unitTests.includeAndroidResources = true
namespace "androidx.camera.camera2.pipe"
}
kapt {
javacOptions {
option("-Adagger.fastInit=enabled")
option("-Adagger.fullBindingGraphValidation=ERROR")
}
}
// Create export artifact for all variants (debug/release) for JarJaring
android.libraryVariants.all { variant ->
def variantName = variant.name
def suffix = variantName.capitalize()
def exportJarTask = tasks.register("exportJar${suffix}", Jar) {
archiveBaseName.set("camera-camera2-pipe-${variantName}-export")
def kotlinCompileTask = tasks.findByName("compile${suffix}Kotlin")
from(kotlinCompileTask.outputs.files)
from(files(variant.javaCompileProvider.get().destinationDir))
dependsOn(kotlinCompileTask)
dependsOn(variant.javaCompileProvider.get())
}
def exportConfiguration = configurations.register("export${suffix}")
artifacts.add(exportConfiguration.name, exportJarTask.flatMap{ it.archiveFile })
}
androidx {
name = "Jetpack Camera Pipe"
publish = Publish.SNAPSHOT_AND_RELEASE
mavenGroup = LibraryGroups.CAMERA
mavenVersion = LibraryVersions.CAMERA_PIPE
runApiTasks = new RunApiTasks.No("CameraPipe is an implementation detail of other libraries.")
inceptionYear = "2020"
description = "A set of opinionated camera interfaces and implementations on top of Camera2 " +
"that will form a flexible shim layer to power Frameserver and CameraX."
}