blob: 1154f2d2374db7e01ef9e04ae6528d7043b29d16 [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.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import static androidx.build.dependencies.DependenciesKt.*
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(DAGGER_COMPILER)
testImplementation(ANDROIDX_TEST_CORE)
testImplementation(ANDROIDX_TEST_RUNNER)
testImplementation(JUNIT)
testImplementation(TRUTH)
testImplementation(ROBOLECTRIC)
testImplementation(KOTLIN_COROUTINES_TEST)
testImplementation(project(":camera:camera-camera2-pipe-testing"))
kaptTest(DAGGER_COMPILER)
androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
androidTestImplementation(ANDROIDX_TEST_RUNNER)
androidTestImplementation(TRUTH)
}
android {
defaultConfig {
minSdkVersion 21
}
// Use Robolectric 4.+
testOptions.unitTests.includeAndroidResources = true
}
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_ONLY
mavenGroup = LibraryGroups.CAMERA
mavenVersion = LibraryVersions.CAMERA_PIPE
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 += ["-Xopt-in=kotlin.RequiresOptIn"]
}
}