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 Palantkotlin { 25*fa44fe6aSInna Palant explicitApi() 26*fa44fe6aSInna Palant } 27*fa44fe6aSInna Palant <lambda>null28*fa44fe6aSInna Palantlint { 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 PalantaffectedTestConfiguration { 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 Palanttasks.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 Palantdependencies { 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 }