| /* |
| * 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. |
| */ |
| |
| buildscript { |
| dependencies { |
| classpath("org.anarres.jarjar:jarjar-gradle:1.0.1") |
| } |
| } |
| |
| import androidx.build.LibraryGroups |
| import androidx.build.LibraryVersions |
| import androidx.build.Publish |
| import org.anarres.gradle.plugin.jarjar.JarjarTask |
| 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") |
| id("org.anarres.jarjar") |
| } |
| |
| 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) |
| |
| androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT) |
| androidTestImplementation(ANDROIDX_TEST_RUNNER) |
| androidTestImplementation(TRUTH) |
| } |
| |
| android { |
| defaultConfig { |
| minSdkVersion 21 |
| } |
| |
| // Use Robolectric 4.+ |
| testOptions.unitTests.includeAndroidResources = true |
| } |
| |
| // Create jarjar artifact for all variants (debug/release) |
| android.libraryVariants.all { variant -> |
| def variantName = variant.name |
| def suffix = variantName.capitalize() |
| def jarjarTask = tasks.create("jarjar${suffix}", JarjarTask) { |
| destinationName "camera-camera2-pipe-${variantName}-jarjar.jar" |
| def kotlinCompileTask = tasks.findByName("compile${suffix}Kotlin") |
| from kotlinCompileTask.outputs.files |
| from files(variant.javaCompileProvider.get().destinationDir) |
| dependsOn kotlinCompileTask |
| dependsOn variant.javaCompileProvider.get() |
| } |
| |
| def jarjarConf = configurations.register("jarjar${suffix}") |
| artifacts.add("${jarjarConf.name}", jarjarTask.destinationPath) { |
| name "camera-camera2-pipe-${variantName}-jarjar" |
| type "jar" |
| builtBy jarjarTask |
| } |
| } |
| |
| androidx { |
| name = "Jetpack Camera Pipe" |
| publish = Publish.NONE |
| 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"] |
| } |
| } |