xref: /aosp_15_r20/external/accompanist/permissions-lint/build.gradle.kts (revision fa44fe6ae8e729aa3cfe5c03eedbbf98fb44e2c6)
1*fa44fe6aSInna Palant /*
<lambda>null2*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 
17*fa44fe6aSInna Palant plugins {
18*fa44fe6aSInna Palant     `java-library`
19*fa44fe6aSInna Palant     id("kotlin")
20*fa44fe6aSInna Palant     id(libs.plugins.jetbrains.dokka.get().pluginId)
21*fa44fe6aSInna Palant     id(libs.plugins.android.lint.get().pluginId)
22*fa44fe6aSInna Palant }
23*fa44fe6aSInna Palant 
<lambda>null24*fa44fe6aSInna Palant kotlin {
25*fa44fe6aSInna Palant     explicitApi()
26*fa44fe6aSInna Palant }
27*fa44fe6aSInna Palant 
<lambda>null28*fa44fe6aSInna Palant lint {
29*fa44fe6aSInna Palant     htmlReport = true
30*fa44fe6aSInna Palant     htmlOutput = file("lint-report.html")
31*fa44fe6aSInna Palant     textReport = true
32*fa44fe6aSInna Palant     absolutePaths = false
33*fa44fe6aSInna Palant     ignoreTestSources = true
34*fa44fe6aSInna Palant }
35*fa44fe6aSInna Palant 
<lambda>null36*fa44fe6aSInna Palant affectedTestConfiguration {
37*fa44fe6aSInna Palant     jvmTestTask = "test"
38*fa44fe6aSInna Palant }
39*fa44fe6aSInna Palant 
40*fa44fe6aSInna Palant /**
41*fa44fe6aSInna Palant  * Creates a configuration for users to use that will be used bundle these dependency
42*fa44fe6aSInna Palant  * jars inside of this lint check's jar. This is required because lintPublish does
43*fa44fe6aSInna Palant  * not currently support dependencies, so instead we need to bundle any dependencies with the
44*fa44fe6aSInna Palant  * lint jar manually. (b/182319899)
45*fa44fe6aSInna Palant  */
46*fa44fe6aSInna Palant val bundleInside: Configuration = configurations.create("bundleInside")
47*fa44fe6aSInna Palant // bundleInside dependencies should be included as compileOnly and testImplementation as well
48*fa44fe6aSInna Palant configurations.getByName("compileOnly").setExtendsFrom(setOf(bundleInside))
49*fa44fe6aSInna Palant configurations.getByName("testImplementation").setExtendsFrom(setOf(bundleInside))
50*fa44fe6aSInna Palant 
<lambda>null51*fa44fe6aSInna Palant tasks.getByName<Jar>("jar") {
52*fa44fe6aSInna Palant     this.dependsOn(bundleInside)
53*fa44fe6aSInna Palant     this.from({
54*fa44fe6aSInna Palant        bundleInside
55*fa44fe6aSInna Palant                // The stdlib is already bundled with lint, so no need to include it manually
56*fa44fe6aSInna Palant                // in the lint.jar if any dependencies here depend on it
57*fa44fe6aSInna Palant                .filter { !it.name.contains("kotlin-stdlib") }
58*fa44fe6aSInna Palant                .map { file ->
59*fa44fe6aSInna Palant                    if (file.isDirectory) {
60*fa44fe6aSInna Palant                        file
61*fa44fe6aSInna Palant                    } else {
62*fa44fe6aSInna Palant                        zipTree(file)
63*fa44fe6aSInna Palant                    }
64*fa44fe6aSInna Palant                }
65*fa44fe6aSInna Palant    })
66*fa44fe6aSInna Palant }
67*fa44fe6aSInna Palant 
<lambda>null68*fa44fe6aSInna Palant dependencies {
69*fa44fe6aSInna Palant     // Bundle metadataJvm inside the Jar
70*fa44fe6aSInna Palant     bundleInside(libs.kotlin.metadataJvm)
71*fa44fe6aSInna Palant 
72*fa44fe6aSInna Palant     compileOnly(libs.android.tools.lint.api)
73*fa44fe6aSInna Palant     compileOnly(libs.kotlin.reflect)
74*fa44fe6aSInna Palant     compileOnly(libs.kotlin.stdlib)
75*fa44fe6aSInna Palant     compileOnly(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies
76*fa44fe6aSInna Palant 
77*fa44fe6aSInna Palant     testImplementation(libs.junit)
78*fa44fe6aSInna Palant     testImplementation(libs.kotlin.reflect)
79*fa44fe6aSInna Palant     testImplementation(libs.kotlin.stdlib)
80*fa44fe6aSInna Palant     testImplementation(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies
81*fa44fe6aSInna Palant     testImplementation(libs.android.tools.lint.lint)
82*fa44fe6aSInna Palant     testImplementation(libs.android.tools.lint.tests)
83*fa44fe6aSInna Palant }
84*fa44fe6aSInna Palant 
85*fa44fe6aSInna Palant java {
86*fa44fe6aSInna Palant     sourceCompatibility = JavaVersion.VERSION_1_8
87*fa44fe6aSInna Palant     targetCompatibility = JavaVersion.VERSION_1_8
88*fa44fe6aSInna Palant }