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