| /* |
| * 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(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." |
| } |
| |
| // Allow usage of Kotlin's @OptIn. |
| tasks.withType(KotlinCompile).configureEach { |
| kotlinOptions { |
| freeCompilerArgs += ["-opt-in=kotlin.RequiresOptIn"] |
| } |
| } |