1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14buildscript { 15 ext.versions = [ 16 'gradle' : '8.1.0', 17 'minSdk' : 34, 18 'targetSdk' : 34, 19 'compileSdk' : 34, 20 'buildTools' : '30.0.3', 21 'kotlin' : '1.6.21', 22 'ktx' : '1.10.1', 23 'coroutines' : '1.6.4', 24 'appcompat' : '1.6.1', 25 'androidXLib' : '1.1.0-alpha02', 26 'androidXRun' : '1.1.0-alpha4', 27 'guava' : '31.0.1-android', 28 'filament' : '1.12.5', 29 'dagger' : '2.44', 30 'material' : '1.9.0', 31 'junit' : '4.13.2', 32 'androidXTest' : '1.5.0', 33 'mockito' : '2.28.3', 34 ] 35 36 repositories { 37 google() 38 mavenCentral() 39 } 40 41 dependencies { 42 classpath "com.android.tools.build:gradle:$versions.gradle" 43 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0" 44 } 45} 46 47allprojects { 48 repositories { 49 google() 50 mavenCentral() 51 } 52} 53 54apply plugin: 'com.android.application' 55apply plugin: 'kotlin-android' 56apply plugin: 'org.jetbrains.kotlin.kapt' 57 58android { 59 namespace 'com.google.android.wallpaper.weathereffects' 60 compileSdk versions.compileSdk 61 62 defaultConfig { 63 applicationId 'com.google.android.wallpaper.weathereffects' 64 minSdk versions.minSdk 65 targetSdk versions.targetSdk 66 versionCode 1 67 versionName '0.1.0' 68 signingConfig signingConfigs.debug 69 70 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 71 } 72 73 sourceSets { 74 main { 75 // TODO: Split out debug source. 76 java.srcDirs = ["${rootDir}/src", "${rootDir}/debug/src"] 77 res.srcDirs = ["${rootDir}/res", "${rootDir}/debug/res"] 78 manifest.srcFile "AndroidManifest.xml" 79 } 80 81 debug { 82 java.srcDirs = ["${rootDir}/debug/src"] 83 res.srcDirs = ["${rootDir}/debug/res"] 84 assets.srcDirs = ["${rootDir}/debug/assets"] 85 manifest.srcFile "debug/AndroidManifest.xml" 86 } 87 88 test { 89 java.srcDirs = ["${rootDir}/unitTests/src"] 90 res.srcDirs = ["${rootDir}/unitTests/res"] 91 } 92 93 androidTest { 94 java.srcDirs = ["${rootDir}/tests/src"] 95 res.srcDirs = ["${rootDir}/tests/res"] 96 } 97 } 98 99 buildTypes { 100 debug { 101 minifyEnabled false 102 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 103 testCoverageEnabled true 104 } 105 106 release { 107 minifyEnabled true 108 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 109 testCoverageEnabled true 110 } 111 } 112 113 compileOptions { 114 sourceCompatibility JavaVersion.VERSION_17 115 targetCompatibility JavaVersion.VERSION_17 116 } 117 118 kotlinOptions { 119 jvmTarget = '17' 120 } 121 122 testOptions { 123 unitTests { 124 includeAndroidResources = true 125 } 126 } 127} 128 129dependencies { 130 implementation project(':toruslib') 131 implementation project(':graphics') 132 133 implementation "androidx.slice:slice-builders:$versions.androidXLib" 134 implementation "androidx.slice:slice-core:$versions.androidXLib" 135 implementation "androidx.core:core-ktx:$versions.ktx" 136 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutines" 137 implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutines" 138 implementation "androidx.appcompat:appcompat:$versions.appcompat" 139 implementation "androidx.constraintlayout:constraintlayout:2.1.4" 140 141 debugImplementation "com.google.android.material:material:$versions.material" 142 143 androidTestImplementation "junit:junit:$versions.junit" 144 androidTestImplementation "androidx.test:core:$versions.androidXTest" 145 androidTestImplementation "androidx.test:rules:$versions.androidXTest" 146 androidTestImplementation "androidx.test:runner:1.5.2" 147 androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.5' 148 androidTestImplementation "com.google.truth:truth:1.1.3" 149 androidTestImplementation "org.mockito:mockito-core:5.3.1" 150 androidTestImplementation "com.linkedin.dexmaker:dexmaker-mockito-inline:$versions.mockito" 151 androidTestImplementation "com.linkedin.dexmaker:dexmaker-mockito-inline-extended:$versions.mockito" 152 androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$versions.coroutines" 153 androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$versions.coroutines" 154 155 // Dagger 156 api "com.google.dagger:dagger:$versions.dagger" 157 api "com.google.dagger:dagger-android:$versions.dagger" 158 kapt "com.google.dagger:dagger-compiler:$versions.dagger" 159 kapt "com.google.dagger:dagger-android-processor:$versions.dagger" 160 kaptAndroidTest "com.google.dagger:dagger-compiler:$versions.dagger" 161 kaptAndroidTest "com.google.dagger:dagger-android-processor:$versions.dagger" 162} 163