xref: /aosp_15_r20/external/jetpack-camera-app/feature/preview/build.gradle.kts (revision 7e7863dab8204bb545ead586e736dea632e06846)
1*7e7863daSAndroid Build Coastguard Worker /*
2*7e7863daSAndroid Build Coastguard Worker  * Copyright (C) 2023 The Android Open Source Project
3*7e7863daSAndroid Build Coastguard Worker  *
4*7e7863daSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*7e7863daSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*7e7863daSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*7e7863daSAndroid Build Coastguard Worker  *
8*7e7863daSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*7e7863daSAndroid Build Coastguard Worker  *
10*7e7863daSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*7e7863daSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*7e7863daSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*7e7863daSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*7e7863daSAndroid Build Coastguard Worker  * limitations under the License.
15*7e7863daSAndroid Build Coastguard Worker  */
16*7e7863daSAndroid Build Coastguard Worker 
<lambda>null17*7e7863daSAndroid Build Coastguard Worker plugins {
18*7e7863daSAndroid Build Coastguard Worker     alias(libs.plugins.android.library)
19*7e7863daSAndroid Build Coastguard Worker     alias(libs.plugins.kotlin.android)
20*7e7863daSAndroid Build Coastguard Worker     alias(libs.plugins.kotlin.kapt)
21*7e7863daSAndroid Build Coastguard Worker     alias(libs.plugins.dagger.hilt.android)
22*7e7863daSAndroid Build Coastguard Worker }
23*7e7863daSAndroid Build Coastguard Worker 
<lambda>null24*7e7863daSAndroid Build Coastguard Worker android {
25*7e7863daSAndroid Build Coastguard Worker     namespace = "com.google.jetpackcamera.feature.preview"
26*7e7863daSAndroid Build Coastguard Worker     compileSdk = libs.versions.compileSdk.get().toInt()
27*7e7863daSAndroid Build Coastguard Worker     compileSdkPreview = libs.versions.compileSdkPreview.get()
28*7e7863daSAndroid Build Coastguard Worker 
29*7e7863daSAndroid Build Coastguard Worker     defaultConfig {
30*7e7863daSAndroid Build Coastguard Worker         minSdk = libs.versions.minSdk.get().toInt()
31*7e7863daSAndroid Build Coastguard Worker         testOptions.targetSdk = libs.versions.targetSdk.get().toInt()
32*7e7863daSAndroid Build Coastguard Worker         lint.targetSdk = libs.versions.targetSdk.get().toInt()
33*7e7863daSAndroid Build Coastguard Worker 
34*7e7863daSAndroid Build Coastguard Worker         testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
35*7e7863daSAndroid Build Coastguard Worker     }
36*7e7863daSAndroid Build Coastguard Worker 
37*7e7863daSAndroid Build Coastguard Worker     flavorDimensions += "flavor"
38*7e7863daSAndroid Build Coastguard Worker     productFlavors {
39*7e7863daSAndroid Build Coastguard Worker         create("stable") {
40*7e7863daSAndroid Build Coastguard Worker             dimension = "flavor"
41*7e7863daSAndroid Build Coastguard Worker             isDefault = true
42*7e7863daSAndroid Build Coastguard Worker         }
43*7e7863daSAndroid Build Coastguard Worker 
44*7e7863daSAndroid Build Coastguard Worker         create("preview") {
45*7e7863daSAndroid Build Coastguard Worker             dimension = "flavor"
46*7e7863daSAndroid Build Coastguard Worker             targetSdkPreview = libs.versions.targetSdkPreview.get()
47*7e7863daSAndroid Build Coastguard Worker         }
48*7e7863daSAndroid Build Coastguard Worker     }
49*7e7863daSAndroid Build Coastguard Worker 
50*7e7863daSAndroid Build Coastguard Worker     compileOptions {
51*7e7863daSAndroid Build Coastguard Worker         sourceCompatibility = JavaVersion.VERSION_17
52*7e7863daSAndroid Build Coastguard Worker         targetCompatibility = JavaVersion.VERSION_17
53*7e7863daSAndroid Build Coastguard Worker     }
54*7e7863daSAndroid Build Coastguard Worker     kotlin {
55*7e7863daSAndroid Build Coastguard Worker         jvmToolchain(17)
56*7e7863daSAndroid Build Coastguard Worker     }
57*7e7863daSAndroid Build Coastguard Worker     buildFeatures {
58*7e7863daSAndroid Build Coastguard Worker         buildConfig = true
59*7e7863daSAndroid Build Coastguard Worker         compose = true
60*7e7863daSAndroid Build Coastguard Worker     }
61*7e7863daSAndroid Build Coastguard Worker     composeOptions {
62*7e7863daSAndroid Build Coastguard Worker         kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
63*7e7863daSAndroid Build Coastguard Worker     }
64*7e7863daSAndroid Build Coastguard Worker 
65*7e7863daSAndroid Build Coastguard Worker     @Suppress("UnstableApiUsage")
66*7e7863daSAndroid Build Coastguard Worker     testOptions {
67*7e7863daSAndroid Build Coastguard Worker         unitTests {
68*7e7863daSAndroid Build Coastguard Worker             isReturnDefaultValues = true
69*7e7863daSAndroid Build Coastguard Worker             isIncludeAndroidResources = true
70*7e7863daSAndroid Build Coastguard Worker         }
71*7e7863daSAndroid Build Coastguard Worker         managedDevices {
72*7e7863daSAndroid Build Coastguard Worker             localDevices {
73*7e7863daSAndroid Build Coastguard Worker                 create("pixel2Api28") {
74*7e7863daSAndroid Build Coastguard Worker                     device = "Pixel 2"
75*7e7863daSAndroid Build Coastguard Worker                     apiLevel = 28
76*7e7863daSAndroid Build Coastguard Worker                 }
77*7e7863daSAndroid Build Coastguard Worker                 create("pixel8Api34") {
78*7e7863daSAndroid Build Coastguard Worker                     device = "Pixel 8"
79*7e7863daSAndroid Build Coastguard Worker                     apiLevel = 34
80*7e7863daSAndroid Build Coastguard Worker                     systemImageSource = "aosp_atd"
81*7e7863daSAndroid Build Coastguard Worker                 }
82*7e7863daSAndroid Build Coastguard Worker             }
83*7e7863daSAndroid Build Coastguard Worker         }
84*7e7863daSAndroid Build Coastguard Worker     }
85*7e7863daSAndroid Build Coastguard Worker 
86*7e7863daSAndroid Build Coastguard Worker     kotlinOptions {
87*7e7863daSAndroid Build Coastguard Worker         freeCompilerArgs += "-Xcontext-receivers"
88*7e7863daSAndroid Build Coastguard Worker     }
89*7e7863daSAndroid Build Coastguard Worker }
90*7e7863daSAndroid Build Coastguard Worker 
<lambda>null91*7e7863daSAndroid Build Coastguard Worker dependencies {
92*7e7863daSAndroid Build Coastguard Worker     // Reflect
93*7e7863daSAndroid Build Coastguard Worker     implementation(libs.kotlin.reflect)
94*7e7863daSAndroid Build Coastguard Worker     // Compose
95*7e7863daSAndroid Build Coastguard Worker     val composeBom = platform(libs.compose.bom)
96*7e7863daSAndroid Build Coastguard Worker     implementation(composeBom)
97*7e7863daSAndroid Build Coastguard Worker     androidTestImplementation(composeBom)
98*7e7863daSAndroid Build Coastguard Worker 
99*7e7863daSAndroid Build Coastguard Worker     // Compose - Material Design 3
100*7e7863daSAndroid Build Coastguard Worker     implementation(libs.compose.material3)
101*7e7863daSAndroid Build Coastguard Worker     implementation(libs.compose.material.icons.extended)
102*7e7863daSAndroid Build Coastguard Worker 
103*7e7863daSAndroid Build Coastguard Worker     // Compose - Android Studio Preview support
104*7e7863daSAndroid Build Coastguard Worker     implementation(libs.compose.ui.tooling.preview)
105*7e7863daSAndroid Build Coastguard Worker     debugImplementation(libs.compose.ui.tooling)
106*7e7863daSAndroid Build Coastguard Worker 
107*7e7863daSAndroid Build Coastguard Worker     // Compose - Integration with ViewModels with Navigation and Hilt
108*7e7863daSAndroid Build Coastguard Worker     implementation(libs.hilt.navigation.compose)
109*7e7863daSAndroid Build Coastguard Worker 
110*7e7863daSAndroid Build Coastguard Worker     // Compose - Lifecycle utilities
111*7e7863daSAndroid Build Coastguard Worker     implementation(libs.androidx.lifecycle.viewmodel.compose)
112*7e7863daSAndroid Build Coastguard Worker     implementation(libs.androidx.lifecycle.runtime.compose)
113*7e7863daSAndroid Build Coastguard Worker 
114*7e7863daSAndroid Build Coastguard Worker     // Compose - Testing
115*7e7863daSAndroid Build Coastguard Worker     androidTestImplementation(libs.compose.junit)
116*7e7863daSAndroid Build Coastguard Worker     debugImplementation(libs.compose.test.manifest)
117*7e7863daSAndroid Build Coastguard Worker     // noinspection TestManifestGradleConfiguration: required for release build unit tests
118*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.compose.test.manifest)
119*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.compose.junit)
120*7e7863daSAndroid Build Coastguard Worker 
121*7e7863daSAndroid Build Coastguard Worker     // Testing
122*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.junit)
123*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.truth)
124*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.mockito.core)
125*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.kotlinx.coroutines.test)
126*7e7863daSAndroid Build Coastguard Worker     testImplementation(libs.robolectric)
127*7e7863daSAndroid Build Coastguard Worker     debugImplementation(libs.androidx.test.monitor)
128*7e7863daSAndroid Build Coastguard Worker     implementation(libs.androidx.junit)
129*7e7863daSAndroid Build Coastguard Worker     androidTestImplementation(libs.androidx.junit)
130*7e7863daSAndroid Build Coastguard Worker     androidTestImplementation(libs.androidx.espresso.core)
131*7e7863daSAndroid Build Coastguard Worker 
132*7e7863daSAndroid Build Coastguard Worker     // Futures
133*7e7863daSAndroid Build Coastguard Worker     implementation(libs.futures.ktx)
134*7e7863daSAndroid Build Coastguard Worker 
135*7e7863daSAndroid Build Coastguard Worker     // CameraX
136*7e7863daSAndroid Build Coastguard Worker     implementation(libs.camera.core)
137*7e7863daSAndroid Build Coastguard Worker     implementation(libs.camera.viewfinder.compose)
138*7e7863daSAndroid Build Coastguard Worker 
139*7e7863daSAndroid Build Coastguard Worker     // Hilt
140*7e7863daSAndroid Build Coastguard Worker     implementation(libs.dagger.hilt.android)
141*7e7863daSAndroid Build Coastguard Worker     kapt(libs.dagger.hilt.compiler)
142*7e7863daSAndroid Build Coastguard Worker 
143*7e7863daSAndroid Build Coastguard Worker     //Tracing
144*7e7863daSAndroid Build Coastguard Worker     implementation(libs.androidx.tracing)
145*7e7863daSAndroid Build Coastguard Worker 
146*7e7863daSAndroid Build Coastguard Worker     implementation(libs.kotlinx.atomicfu)
147*7e7863daSAndroid Build Coastguard Worker 
148*7e7863daSAndroid Build Coastguard Worker     // Project dependencies
149*7e7863daSAndroid Build Coastguard Worker     implementation(project(":data:settings"))
150*7e7863daSAndroid Build Coastguard Worker     implementation(project(":core:camera"))
151*7e7863daSAndroid Build Coastguard Worker     implementation(project(":core:common"))
152*7e7863daSAndroid Build Coastguard Worker     testImplementation(project(":core:common"))
153*7e7863daSAndroid Build Coastguard Worker }
154*7e7863daSAndroid Build Coastguard Worker 
155*7e7863daSAndroid Build Coastguard Worker // Allow references to generated code
156*7e7863daSAndroid Build Coastguard Worker kapt {
157*7e7863daSAndroid Build Coastguard Worker     correctErrorTypes = true
158*7e7863daSAndroid Build Coastguard Worker }