All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.freeletics.gradle.setup.AndroidLintSetup.kt Maven / Gradle / Ivy

There is a newer version: 0.20.0
Show newest version
package com.freeletics.gradle.setup

import com.android.build.api.dsl.Lint
import com.freeletics.gradle.util.addMaybe
import com.freeletics.gradle.util.getBundleOrNull
import org.gradle.api.Project
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider

internal fun Project.configureStandaloneLint() {
    extensions.configure(Lint::class.java) {
        it.configure(project)
    }
}

internal fun Lint.configure(project: Project) {
    lintConfig = project.rootProject.file("gradle/lint.xml")

    checkReleaseBuilds = false
    checkGeneratedSources = false
    checkTestSources = false
    checkDependencies = true
    ignoreTestSources = true
    abortOnError = true
    warningsAsErrors = true

    htmlReport = true
    htmlOutput = project.reportsFile("lint-result.html").get().asFile
    textReport = true
    textOutput = project.reportsFile("lint-result.txt").get().asFile

    project.dependencies.addMaybe("lintChecks", project.getBundleOrNull("default-lint"))
}

private fun Project.reportsFile(name: String): Provider {
    val projectName = project.path
        .replace("projects", "")
        .replaceFirst(":", "")
        .replace(":", "/")

    return rootProject.layout.buildDirectory.file("reports/lint/$projectName/$name")
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy