Merge pull request #1631 from oas004/feature/permission-lint-kts
[Permissions-Lint] Migrate gradle file to Kotlin DSL
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 2e61942..eddac9f 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -17,6 +17,7 @@
okhttp = "3.12.13"
coil = "1.3.2"
+androidlint = "25.3.0"
androidxtest = "1.4.0"
androidxnavigation = "2.7.0-alpha01"
androidxWindow = "1.0.0"
@@ -107,6 +108,7 @@
android-application = { id = "com.android.application", version.ref = "gradlePlugin" }
android-kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
android-library = { id = "com.android.library", version.ref = "gradlePlugin" }
+android-lint = { id = "com.android.lint", version.ref = "androidlint"}
jetbrains-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
gradle-metalava = { id = "me.tylerbwong.gradle.metalava", version.ref = "metalava" }
vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "vanniktechPublish" }
diff --git a/permissions-lint/build.gradle b/permissions-lint/build.gradle
deleted file mode 100644
index e8db407..0000000
--- a/permissions-lint/build.gradle
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-plugins {
- id 'java-library'
- id 'kotlin'
- id 'org.jetbrains.dokka'
- id 'com.android.lint'
-}
-
-kotlin {
- explicitApi()
-}
-
-lintOptions {
- htmlReport true
- htmlOutput file("lint-report.html")
- textReport true
- absolutePaths false
- ignoreTestSources true
-}
-
-affectedTestConfiguration {
- jvmTestTask = "test"
-}
-
-/**
- * Creates a configuration for users to use that will be used bundle these dependency
- * jars inside of this lint check's jar. This is required because lintPublish does
- * not currently support dependencies, so instead we need to bundle any dependencies with the
- * lint jar manually. (b/182319899)
- */
-def bundle = configurations.create("bundleInside")
-// bundleInside dependencies should be included as compileOnly and testImplementation as well
-configurations.getByName("compileOnly").setExtendsFrom([bundle])
-configurations.getByName("testImplementation").setExtendsFrom([bundle])
-tasks.named("jar").configure { task ->
- def jarTask = task as Jar
- jarTask.dependsOn(bundle)
- jarTask.from({
- bundle
- // The stdlib is already bundled with lint, so no need to include it manually
- // in the lint.jar if any dependencies here depend on it
- .filter { !it.name.contains("kotlin-stdlib") }
- .collect { file ->
- if (file.isDirectory()) {
- file
- } else {
- zipTree(file)
- }
- }
- })
-}
-
-dependencies {
- // Bundle metadataJvm inside the Jar
- bundleInside libs.kotlin.metadataJvm
-
- compileOnly libs.android.tools.lint.api
- compileOnly libs.kotlin.reflect
- compileOnly libs.kotlin.stdlib
- compileOnly libs.kotlin.stdlibJdk8 // Override version from transitive dependencies
-
- testImplementation libs.junit
- testImplementation libs.kotlin.reflect
- testImplementation libs.kotlin.stdlib
- testImplementation libs.kotlin.stdlibJdk8 // Override version from transitive dependencies
- testImplementation libs.android.tools.lint.lint
- testImplementation libs.android.tools.lint.tests
-}
-
-java {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
-}
\ No newline at end of file
diff --git a/permissions-lint/build.gradle.kts b/permissions-lint/build.gradle.kts
new file mode 100644
index 0000000..fa7376d
--- /dev/null
+++ b/permissions-lint/build.gradle.kts
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+plugins {
+ `java-library`
+ id("kotlin")
+ id(libs.plugins.jetbrains.dokka.get().pluginId)
+ id(libs.plugins.android.lint.get().pluginId)
+}
+
+kotlin {
+ explicitApi()
+}
+
+lint {
+ htmlReport = true
+ htmlOutput = file("lint-report.html")
+ textReport = true
+ absolutePaths = false
+ ignoreTestSources = true
+}
+
+affectedTestConfiguration {
+ jvmTestTask = "test"
+}
+
+/**
+ * Creates a configuration for users to use that will be used bundle these dependency
+ * jars inside of this lint check's jar. This is required because lintPublish does
+ * not currently support dependencies, so instead we need to bundle any dependencies with the
+ * lint jar manually. (b/182319899)
+ */
+val bundleInside: Configuration = configurations.create("bundleInside")
+// bundleInside dependencies should be included as compileOnly and testImplementation as well
+configurations.getByName("compileOnly").setExtendsFrom(setOf(bundleInside))
+configurations.getByName("testImplementation").setExtendsFrom(setOf(bundleInside))
+
+tasks.getByName<Jar>("jar") {
+ this.dependsOn(bundleInside)
+ this.from({
+ bundleInside
+ // The stdlib is already bundled with lint, so no need to include it manually
+ // in the lint.jar if any dependencies here depend on it
+ .filter { !it.name.contains("kotlin-stdlib") }
+ .map { file ->
+ if (file.isDirectory) {
+ file
+ } else {
+ zipTree(file)
+ }
+ }
+ })
+}
+
+dependencies {
+ // Bundle metadataJvm inside the Jar
+ bundleInside(libs.kotlin.metadataJvm)
+
+ compileOnly(libs.android.tools.lint.api)
+ compileOnly(libs.kotlin.reflect)
+ compileOnly(libs.kotlin.stdlib)
+ compileOnly(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies
+
+ testImplementation(libs.junit)
+ testImplementation(libs.kotlin.reflect)
+ testImplementation(libs.kotlin.stdlib)
+ testImplementation(libs.kotlin.stdlibJdk8) // Override version from transitive dependencies
+ testImplementation(libs.android.tools.lint.lint)
+ testImplementation(libs.android.tools.lint.tests)
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+}
\ No newline at end of file