1 /* 2 * Copyright 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 @file:Suppress("UnstableApiUsage") 17 <lambda>null18plugins { 19 id(libs.plugins.android.library.get().pluginId) 20 id(libs.plugins.android.kotlin.get().pluginId) 21 id(libs.plugins.jetbrains.dokka.get().pluginId) 22 id(libs.plugins.gradle.metalava.get().pluginId) 23 id(libs.plugins.vanniktech.maven.publish.get().pluginId) 24 } 25 <lambda>null26kotlin { 27 explicitApi() 28 } 29 <lambda>null30android { 31 namespace = "com.google.accompanist.themeadapter.appcompat" 32 testNamespace = "com.google.accompanist.themeadapter.appcompat.test" 33 34 compileSdk = 34 35 36 defaultConfig { 37 minSdk = 21 38 // targetSdkVersion has no effect for libraries. This is only used for the test APK 39 targetSdk = 33 40 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 41 } 42 43 compileOptions { 44 sourceCompatibility = JavaVersion.VERSION_1_8 45 targetCompatibility = JavaVersion.VERSION_1_8 46 } 47 48 buildFeatures { 49 compose = true 50 buildConfig = false 51 } 52 53 composeOptions { 54 kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() 55 } 56 57 lint { 58 textReport = true 59 textOutput = File("stdout") 60 // We run a full lint analysis as build part in CI, so skip vital checks for assemble tasks 61 checkReleaseBuilds = false 62 disable += setOf("GradleOverrides") 63 } 64 65 packaging { 66 // Some of the META-INF files conflict with coroutines-test. Exclude them to enable 67 // our test APK to build (has no effect on our AARs) 68 resources { 69 excludes += listOf("/META-INF/AL2.0", "/META-INF/LGPL2.1") 70 } 71 } 72 73 testOptions { 74 unitTests { 75 isIncludeAndroidResources = true 76 } 77 animationsDisabled = true 78 } 79 80 sourceSets { 81 named("test") { 82 java.srcDirs("src/sharedTest/kotlin") 83 res.srcDirs("src/sharedTest/res") 84 } 85 named("androidTest") { 86 java.srcDirs("src/sharedTest/kotlin") 87 res.srcDirs("src/sharedTest/res") 88 } 89 } 90 } 91 <lambda>null92metalava { 93 sourcePaths.setFrom("src/main") 94 filename.set("api/current.api") 95 reportLintsAsErrors.set(true) 96 } 97 <lambda>null98dependencies { 99 implementation(project(":themeadapter-core")) 100 101 implementation(libs.compose.material.material) 102 103 // ====================== 104 // Test dependencies 105 // ====================== 106 107 androidTestImplementation(project(":internal-testutils")) 108 testImplementation(project(":internal-testutils")) 109 110 androidTestImplementation(libs.junit) 111 testImplementation(libs.junit) 112 113 androidTestImplementation(libs.compose.ui.test.junit4) 114 testImplementation(libs.compose.ui.test.junit4) 115 116 androidTestImplementation(libs.androidx.test.runner) 117 testImplementation(libs.androidx.test.runner) 118 119 androidTestImplementation(libs.androidx.test.espressoCore) 120 testImplementation(libs.androidx.test.espressoCore) 121 122 testImplementation(libs.robolectric) 123 } 124